Bazı yerlerde bu örnekleri $_SERVER değişkenine göre yaptıklarını gördüğüm için içime daha çok sinen haliyle bir örnek yapmak istedim. İçime sinmeme sebebi kolay müdahele edilebilir olmasıdır. Siz kodları ne kadar kilitlerseniz kilitleyin
$_SERVER[‘ SERVER_NAME’]=$_SERVER[‘HTTP_HOST’]=’www.cnylmz.net’;
gibi bir satır kullanıldığında, lisans sisteminiz işlevini tamamen kaybeder. İçime sinmesi için, bu müdaheleyi olabildiğince zorlaştırmak gerekiyor.
Müdaheleyi zorlaştırmak içinse, değişken yerine fonksiyon kullanma taraftarıyım. getenv() fonksiyonu, aynı $_SERVER değişkeni gibi ön tanımlı ortam değişkenlerine ulaşmak için kullanılır, güzel yanı ise putenv() fonksiyonunun safe_mod(güvenli biçim) seçeneğinde çalışan sunucularda çalışmaması. O yüzden bi kaç kontrol ile kolay lisans betiğini hazırlayabiliriz.
1234567891011121314 if(ini_get('safe_mode')==true)die('Güvenliğiniz için sunucu "SAFE MODE(Güvenli biçim)" durumunda çalıştırılmalıdır');require('lisans.php');// içinde $lisans_anahtar değişkeni var$lisans['site']=getenv('HTTP_HOST');if (substr($lisans['site'], 0, 4) == "www.")$lisans['site']=substr($lisans['site'],4);$lisans['hash']=wordwrap(strtoupper(md5($lisans['site'])),4,'-',true);if($lisans['hash']!==$lisans_anahtar)die('Lisans anahtarınız bu site için geçerli değil');elseunset($lisans);/*burası da sizin php kodlarınız*/
ve bu kodları da ioncube, zend veya benzeri programlarla encode ettikten sonra işiniz bitmiş demektir.