PHP Lisans Sistemi Yapımı [Basit-Orta-İleri Seviye]

Bu lisans olayı bundan 3 yıl önce çok aradığım bir konuydu nasıl yapacağımı bilmiyordum. Nasıl yapacağımı bilmeyi geçtim işleyişini bile bilmiyordum yazdığım sistemleri korumak dolandırılmadan aldığınız bir önlem olmuyor maalesef ki.

Bugün size en basitinden üst düzey seviyeye kadar lisans yapımlarının örneklerini göstereceğim.

İlk örnek: Proje tabanlı lisans

Bu basit bir yöntemdir. Sistemin ana fonksiyonunda tutarsınız uzaktan bir kontrol yapmanız gerekmez. Fakat kolay kaldırabilir bir yöntemdir.
Parça-Parça Anlatacağım ihtiyacınıza göre kullanmanız için.

Domain Lisansı:

$domain = str_replace('www.','',$_SERVER['SERVER_NAME']);
$lisans_domain = "arcface.net";

if($domain != $lisans_domain){
    die("Lisans Hatası: Geçersiz Domain Adresi");
    exit;
}

Süre Lisansı:

$date = strtotime(date('d-m-Y H:i'));
$license_date = strtotime('13-10-2021 00:00');

if($date >= $license_date){
    die("Lisans Hatası: Lisans Süreniz Bitmiştir.");
    exit;
}

IP Lisansı:

$ip = $_SERVER['SERVER_ADDR'];
$license_ip = "185.216.114.5";

if($ip != $license_ip){
    die("Lisans Hatası: Geçersiz IP Adresi");
    exit;
}

Domain ve IP Oluşturulan Özel Kodlu Lisans:

Burada şunu belirtmem lazım ki bunu çoğaltabilirsiniz. Burada sadece domain ve ip üzerine bir code oluşturuyoruz.
İsterseniz buna zaman damgasıda koyabilirsiniz. Özelleştirmek size kalmış.

$license_check = str_replace('www.','',$_SERVER['SERVER_NAME'])."-".$_SERVER['SERVER_ADDR'];
$license_code = "120df36686fc8141199c31760f306b24ca554293";


if($license_check != $license_code){
    die("Lisans Hatası: Geçersiz Lisans Kodu");
    exit;
}

Aslında lisans olayının tüm olayı bundan ibaret fakat gördüğünüz gibi bunlar kısa kod blokları yani giriş seviyesi PHP bilgisi olan biri bile eğer dosyaları şifrelemedi iseniz rahatlıkla bunları bulup kaldırıp lisansı sisteminizden temizleyebilir.

Peki nasıl güvenli hale getirebiliriz. Aslında istediğiniz kadar uğraşın her yöntemi deneyin yapın kafaya koymuş iyi seviyede bir kriptografi uzmanı şifrelediğiniz verileri çözebilir.

Bunu engellemek maalesef ki mümkün değil fakat bu seviyedeki insanlar zaten kalkıp sizin projelerinizin şifrelemesini çözmeyle uğraşmaz basit tutmadığınız sürece hiç bir çalmaya çalışan kişide şifrenizi çözemeyecektir.

Fakat lisansı nasıl şifreleyip güvenli hala getiririze birazdan geçeceğim şimdi sonraki aşama ileri seviye bir lisans nasıl yapılır? Bunu göstermek istiyorum.

Bunun için bir sistem yazdım github üzerinde ücretsiz şekilde paylaştım oradan indirip direkt olarak kullanabilirsiniz.

SARA: PHP ile dinamik lisanslama sistemi

Sistem hakkında bilgiler

Bu lisans sistemi, Etki Alanı, IP adresi Zaman ayarlı dinamik olarak bir lisans oluşturmanıza olanak tanır.

Veritabanı sqllite3 ile sağlanmaktadır. Tüm projelerinizde dosyalarınızı bir kez şifreleyerek istediğiniz kadar lisans oluşturmanız mümkündür.

Kurulum

Bu sistemin çalışması için minimum PHP 5.6 gereklidir.

Bu bir paket değil. MVC Yapınızı vereceğim talimatlara göre uygun hale getirmeniz gerekmektedir.

Öncelikle ana dizinde aşağıdaki 2 parametreyi vermeniz gerekiyor.

define ( 'LICANSE_CODE' , 'TFpsc2lkem9wMGxUOW5heEV5ZGN2RTZFbVNOOHJyZTJDTWMrbE5iY0tyZz0=' );
define ( 'LICANSE_DIR_PATH' , __DIR__. "/license.json" );

Bu sabit değerler, müşterinizin lisans koduna ve lisans dosyasına giden yolu tutar.

  • LICANSE_CODE Müşteriye Özel Lisans Kodu.
  • LICANSE_DIR_PATH Oluşturulan ve Okunan lisans dosyasına giden yol

Bu 2 değeri istemciye açık bırakabilirsiniz. Şifrelemeniz gerekmeyecek.

app.php içindeki kodları, sisteminizde o dosya olmadan projenizin çalışmayacağı bir dosyaya eklemelisiniz.

Belirtilen değerleri kendinize göre yapılandırmayı unutmayınız.

    $ get_url = 'https://www.arcface.net/dynamic_license/license.php' ;

License.php dosyanızın bulunacağı barındırma yoludur. Bunu, lisans kontrolünden geçireceğiniz sunucu adresiyle değiştirin.

   # license.php
   define('LICANSE_CRYPTO_KEY', '2c6326b1d378cb3555e5ee051302eb7e');
    # app.php
    $license['crypto_key'] = license_cypto_dec($license['crypto_key'],"2c6326b1d378cb3555e5ee051302eb7e");

2c6326b1d378cb3555e5ee051302eb7e bu değeri değiştirmeyi unutmayınız.

Son adım

Son olarak license.phpve license.dbdosyasını hostinginize aktarın .

İşlem sonunda app.php içerisine eklediğiniz fonksiyon dosyasını Ioncube veya türev bir şifreleme sistemi ile şifrelemeyi unutmayınız.

Github Kaynağı: https://github.com/arcface/sara_license

Bu lisans sistemi eğer ileri seviye güvenli bir lisans sistemi istiyorsanız fazlasıyla işinizi görecektir. Tüm işlevleri bulunuyor bu lisans sistemini bu makaleyi hazırlamaya karar verdiğim de yazdım yani gayet güncel ve günümüze uygun halde bir lisans sistemidir.

Lisans sistemini kendi yapınıza yedirdikten sonra app.php içindeki her şeyi şifrelemeyi unutmayın yoksa temel seviye php bilen biri bile rahatlıkla lisansı sisteminizden söküp atabilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir