Böyle bir şeyi uygulamanın birçok yolu vardır, ancak burada yapılması çok zor olmaması gereken bir yöntem vardır:
Kara listeye alınmış lisans anahtarlarının karmasını içeren bir dosyayı barındıran bir yerde herkese açık bir web sitesine ihtiyacınız var. Bu dosyayı nasıl yöneteceğiniz size bağlıdır, ancak dosyanın her satırında yalnızca bir karması olmalıdır.
Ardından, yinelenen bir şekilde, yazılımınız bu dosyanın indirilmesini başlatır (sunucu tarafı dillerin çoğu bunu sağlar) ve ardından yüklü lisans anahtarının karmasını arar. Eğer bulunursa, uygulama kara liste kaldırılıncaya kadar ölmesi gerektiğini bilir.
Bunun için MD5 veya benzeri bir sır yeterli olmalıdır. Daha meraklı olabilir ve uygulama sitenize isteği göndermek ve anında bir veritabanında aramak, ama dosya (umarım kısa bir liste olacağını varsayalım) umarım küçük kalır ve olabilir en kolay yol.
Zor kısmı uygulamayı ölü tutacak. Sonuçta, bunu dahili olarak bir yerde saklamalısınız, yani kolayca açık bir şekilde alt üst edilebilirse ve aşırı açık olmasa bile, uygun tabloları geri yükleyerek kolayca geri döndürülebilir / Dosyalar). Bu nedenle ikinci bir koruma yöntemi de öneririm.
Bu yöntem, "LIVE" veya "DEAD" (veya yeterince benzer bir şeyi) bir tabloda veya dosyada depolar, ancak yine HASHed olur. Bunun tuz ve zaman damgası ile karıştırılması gerekir. Uygulamanızdaki bir sayfa her çalıştığında, bu değeri karma "LIVE" + tuz + zaman damgası sürümüyle kontrol edin ve ardından geçerli bir zaman damgası aralığına izin verin (örneğin, bir gün, iki gün, bir hafta, bir ay, vb.). Daha yüksek performansın isabet alacağı aralık büyüdükçe unutmayın.). Şeyler eşleştiği sürece (veya bir eşleşme bulunur), uygulama canlıdır; aksi halde, özel dosya veya tablodaki değer "CANLI" olsa bile, zaman damgası eşik değerinizin dışına çıkacağından yedeklemeden geri yükleme denemesi varsa yine de ölecektir.
Özetle (bu, bir tür sağlama toplamı veya başka bir yöntem gibi bir lisans anahtarının geçerliliğini kontrol etmek için programlı bir yönteminiz olduğunu varsayar ):
- CheckBlacklist
- Lisans Anahtarını tuz ile karmaya dönüştürme
- Sunucudan kara liste dosyası isteme
- Hashim dosyada mı?
- EVET ise, "DEAD" + tuz + zaman damgasının karmasını saklayın (güne kısaltılır; saat + gün + dakika depolamaya gerek yoktur)
- HAYIR ise, karma "LIVE" + tuz + zaman damgasını saklayın (kesilmiş)
- IsKeyAlive
- "LIVE" + tuz + kısaltılmış zaman damgasından karma oluşturun
- DeadAlive karmasını yükle
- Katılıyorlar mı?
- EVET ise, o zaman yaşıyoruz; TRUE değerini döndür.
- HAYIR ise, muhtemelen ölmüş oluruz, ancak yine de zaman damgası penceremizin içinde olabiliriz:
- Zaman damgasından bir gün çıkarın ve karmayı tekrarlayın.
- Şimdi katılıyor muyuz?
- EVET? Dönüş TRUE
- Zaman damgasına bir gün ekleyin ve karmayı tekrarlayın
- Şimdi katılıyor muyuz?
- EVET? Dönüş TRUE
- Bu noktada, eşleşme olmadan zaman damgası aralığının dışındayız. FALSE döndür. (Uygulamayı öldür)
Şimdi, iyilik bunun başarısız olabileceği bir milyon ve bir yol olduğunu biliyor. Olası tüm yolları düşünün ve güvenilir bir sistem oluşturun (kara liste dosyası indirilemiyorsa istemcinin doğru olduğunu varsayan sistem dahil). Dağıtmadan önce test edin, test edin, test edin ve sonra biraz daha test edin, çünkü yanlış giderse müşterinizin güvenini kaybedersiniz.