WordPress Temalarınızı Lisanslayın
Birçok arkadaş temalarının çalınmasından muzdarip. Kimi iyi niyetle tema yapıp lisans işlemi yapmadan satış yapıyor kiminin ise lisansladığı temalar kırılıp wareze düşürülüyor.
Bu yazımda bunun önüne geçebilmek için en iyi alan adına lisanslama yöntemini sizlere anlatmaya çalışacağım.
Öncelikle buradan 3 adet lisans işlemi için gerekli olan dosyalarımızı indirelim. lisans.php, lisans-al.php ve lisans-kodlari.php adında 3 adet lisans işlemi için gerekli olan dosyalarımız. Tek tek ne işe yaradıklarını anlatacağım şimdi. O yüzden şimdilik indirdiğiniz dosyaları pek önemsemeyin.
Bir WordPress teması yaptınız diyelim. Bu temada kullanmış olduğunuz en önemli dosya functions.php dosyasıdır. Çünkü içerisinde yazmış olduğunuz fonksiyonlar, tema paneli, eklemeler vs. gibi en önemli kodlar bu dosyada yer alır. O nedenle bu dosyanın kriptolanması temanın kırılamama olasılığını yükseltir.
Şimdi temanızın functions.php dosyasını açıp <?php etiketinden hemen sonra aşağıdaki kodları ekleyiniz.
/* 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'); */ if (file_exists(TEMPLATEPATH.'/lisans.php')) { 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(sha1(($lisans['site'])))),4,'-',true); if($lisans['hash']!==$lisans_anahtar) die('Lisans anahtarınız bu site için geçerli değildir.'); else unset($lisans);
Yukarıdaki kodları ekledikten sonra ?> etiketinden hemen önce aşağıdaki kodları ekleyiniz.
} else { die('Lisans anahtarının bulunduğundan emin olun.'); }
Daha sonra lisans.php adında bir dosya oluşturup içerisine aşağıdaki kodları ekleyiniz. Bu dosyayı kaydedip tema klasörüne atınız.
<?php $lisans_anahtar='Lisans Anahtarını Girin'; ?>
Şimdi burada ne yaptık hemen anlatayım. functions.php dosyasına eklediğimiz kodlar temamızı lisanslayacak olan kodlardır. lisans.php dosyasındaki kodlar ise alan adımızın lisans anahtarının bulunduğu kodlardır.
Bunları ekledik peki nasıl lisans anahtarı oluşturacağız? Bunun için de lisans-al.php adında bir dosya oluşturup içerisine aşağıdaki kodları giriniz.
<?php echo wordwrap(strtoupper(md5(sha1('başına www koymadan lisanslanacak site adını yazın. (örn: siteadi.com)'))),4,'-',true); ?>
Başına www koymadan lisanslanacak alan adını lisans-al.php dosyasında iki tek tırnak arasına yazıyoruz. Bu dosyası localhostta çalıştırdığımızda bize bir lisans anahtarı verecek. Bu lisans anahtarını ise lisans.php dosyasındaki lisans anahtarını girin yazan kısma yazıp kaydediyoruz. Yukarıda da dediğim gibi lisans.php dosyası tema klasörünüzde olmak zorunda.
Bu lisanslama işleminin mantığı ise şöyle. Alan adınızı önce md5 daha sonra md5 kodunuda sha1 koduna dönüştürerek bize bir kod veriyor. functions.php dosyasına yazdığımız kodlarda ise alan adı ve lisans.php dosyasına yazdığımız lisans anahtarı kodu karşılaştırıp gerekli işlem yapılıyor.
Bunu daha güvenli yapmak sizin elinizde. Belli bir algoritmaya göre kod dönüşümü yaptırarak lisanslama işleminin daha güvenli olmasını sağlayabilirsiniz.
Unutmayın, temanızın kırılmaması için functions.php dosyasının kriptolanması gerek. Bunun için de en iyi araç Ioncube’dur. Fakat ücretlidir. Yok ben para vermem derseniz buradan dosyanızı kriptolayabilirsiniz. Ortadaki your e-mail adress yazan kısma mail adresinizi girdikten sonra mailinize gelen id kodunu üst bölüme girdiğinizde ekrana gelen kriptolama bölümünden dosyanızı kriptolayabilirsiniz.
Bu lisanslama yöntemi bazılarının kafasını karıştırabilir en basit lisanslama yöntemi şudur bence:
bu kodu functions.php atıp ioncube ile şifrelediğiniz zaman sorununuz çözülmüş olur. Ayrıca temanızda usluer’in göstermiş olduğu yöntemi veya benim gösterdiğim yöntemi uyguladığınız zaman temanız warez düşmeyecek diye birşey yok. Bu sadece bu işlemi biraz daha zorlaştırır. Size tavsiyem elinizden geldiği kadar temayı functions dosyasına yazmanızdır..
Yazdığın kod yorumlarda gözükmüyor malesef. :)
Bu işe bende çok kafa yordum. En sonunda kendi matığımı çalıştırarak bişeyler yapmaya çalıştım. Ve yaptığım şey buna benziyordu. Aynı yaptığınız gibi kendi hostumdan lisansları okutup temayı alan kişide onaylatıp lisansı doğruluyordum. Ancak benim yaptığım şöyle bişey var ve bunuda kesinlikle ekleyiniz. Ben lisanları sadece kendi hostuma değil. 2 farklı hostada yüklüyorum ve 3 hosttan ayrı ayrı kontrol yapıyorum çünkü bazen kendi hostumda problem yaşanabilir o zaman 2. olarak atadığım hosttaki lisanları okuyor onada bişey oluyorsa 3. süne geçiyor ancak 3. nünde gitmesi biraz zor çünkü 3 de farklı lokasyonda olan hostlar. Bu şekilde biraz daha geliştirebilirsiniz.
Evet, o şekilde de yapılabilir. İleriki günlerde onun için de bir makale yazabilirim.
aga adam temanı sıfırdan yazar daha kolay. :D
Ben bir kere o yöntemi deneyerek klonlama yapmıştım. Çok da zor değil dediğiniz gibi.
gerçekten iyi bir çalışma eline sağlık
bak bunu bilmiyordum işte paylaşıım süper
Ücretsiz dağıtılacak olan bir tema yapacağım fakat footer’da 1 adet link olacak. Bu linki kaldırılamaz hale getirmek istiyorum. Linki hangi sistem ile şifrelemeliyim ?
Functions.php ile footera link ekleyebilirsin ya da linki direk footera ekleyip Ioncube ile kriptolayabilirsin.
Functions.php ile nasıl footera link ekleyip silindiği halde hata verdirtebiliriz? Açıklarsan sevinirim İsmail abi :)
Valla functionsdan footera link ekletmeyi biliyorum İsmail de silinince nasıl hata verdirilir bilmiyorum. Ama functionsdan footera link ekletip sonra da functionsu Ioncube ile kriptolayabilirsin.
Bunu wp harici baska bir php sistemde kullanka mumkunmudur ?
Tabi. Mantık aynıdır zaten hepsinde.
benim bu sistemi kullanmak istedigim dosyalar .tpl uzntılı
kod .tpl de calismadida
Sadece php dosyaları için geçerlidir.
siteadi.com/altklasör/ şeklinde lisanslamaya çalıştım olmadı maalesef.Yardımcı olabilir misiniz?
O şekilde sorun çıkarabiliyor. Fakat alt domain olarak denerseniz sorun çıkacağını zannetmiyorum.
Burada paylaşılan yöntemlerin hepsi kırılabilir. Çünkü kıracak kişi, kırma öncesi yaptığı araştırmada büyük olasılıkla bu yazıyı okumuştur. :)
Eğer lisanslama yapmanız gerekiyorsa, en zorlayıcı yöntemi ve kendi algoritmanızı oluşturmanız gerekiyor.
Hele ürününüzü toplu olarak satışa çıkartıp lisanslama yapacaksanız, bu konuda paylaşılan algoritmaları kullanmayın. Çünkü bu yazıyı okuyan kişi, lisansı aşmak için bir adım öne geçmiştir. Zannediyorum ki, Türkiye’de satılan bir çok WordPress temasıda buradaki algortimayı kullanıyordur. Çünkü google’da bu konuda pek içerik yok. En detaylı içerik bu blog’da sanırım :)
Benim daha önce yine yabancılara hazırlattığım bir yöntem vardı.
Öncelikle ioncube’yi cüzi bir miktara kırdırabilirsiniz. Türkiye’de bu işle uğraşan pek yazılımcı yok, fakat yabancı forumları takip edenler beni anlamıştır.
Tamamı ile kendinizi garanti altına almak istiyorsanız, temalarınızda gizli arka kapı bırakın. Bu arka kapılar ile istediğinizde, kullanıcıların tüm veritabanını veya tüm dizinini sildirin. Aynı zamanda tema ilk kurulumda çalıştığı anda, sizin belirlediğiniz bir adrese ping göndersin ve sizin sattığınız ürünü kullanan domainleri arşivleyin.
Daha sonra satmış olduğunuz ürünü lisanssız kullanan var ise, uyarıp daha sonra istediğinizi yapabilirsiniz.
Bu yapacağımız işlem belki etik değil fakat, bizim yapmış olduğumuz ürünü lisanssız bir şekilde kullanmakta etik değil. Bu bize her türlü işlemi yapma yetkisi veriyor bence.
Eğer 20 TL’den 10 tane ürün satmayacaksanız bu tür bir önlem almanızada gerek yok.
Burada anlattığım sadece yol gösterici. Elbette buradaki aynı algoritma ile ürünler lisanslanırsa büyük hata olur. Sizin dediğiniz yöntem nasıl yapılabilir o konu hakkında hiçbir fikrim yok. Eğer öyle bir şey yaptırılırsa Ioncube değil de özel bi kriptolama yöntemi olmalı.
Tema dosyasına arka kapı eklemek veya veritabanı sildirmek gibi şeyler işe yaramaz arkadaşlar. Çünkü kullanan kişi illaki bunu kendi bilgisayarı üzerinde localhost kurup dener =)
Bulunması gereken şey şudur 2 veya 3 aşamalı şifreleme yöntemleri kullanmaktır. Örnek ioncube ile şifrelersin başka bir şekilde bir daha şifreleyip tekrar ioncube ile şifrelersin veya şöylede olabilir önce ioncube sonra başka bir yöntem ve bu yöntemi aştığında kodları dışarıdan çağırtacak kodlarla tasarlamak =)
Bence Oğuzhan beyin mantığı daha iyi olabilir. Ama tabi veritabanını sildirmek yerine gizli bir kod ile ilgili kullanıcının sitesini siteyi sürekli kasmaması için günde 1 kez olmak şartıyla kendi veritabanımızda domain kontrolü yaptırıp müşteri olmayan kullanıcıyı uyarıp ya temamızı silmesini yada satın almasını sağlamak daha mantıklı olabilir. Ve buna ek olarak domain adının yanında kendi oluşturduğumuz bir kaç serial i birleştirip tekrar şifrelesek kırılması daha zor ve bu iki yöntem birleştiğinde hem kârlı hemde güvenli bir yöntem olabilir gibime geliyor.
Lisanslamak pek de işe yaramıyor gibime geliyor. Sürekli temaların wareze düştüğü ile ilgili şeyler okuyorum. Bu konuda ciddi bir yaptırım/ceza olmadığı sürece temalar wareze düşmeye devam edecektir. Bu tarz yöntemler sadece amatör kişileri engeller, ama amatörler bile çok çabuk öğreniyor. Üretmek yerine yapılmış olanı bir şekilde elde etme peşindeler.
Bu yöntem güvenilir değil. Daha doğrusu direk buradan kodu alıp lisanslamak güvenli değil. Kod yapısı belli, bu kodlarla lisanslanmış bir temayı internete düşürmek kolay olur.
O yüzden şifre üretirken farklı bir algoritma denemeliler. Benim anlattığım sadece yol gösterim. :)
Bir sorum olucak bunu localhostta deniyorum ama nedense Lisans anahtarınız bu site için geçerli değildir. hatası alıyorum tırnak arasına localhost/balajans/ şeklinde yazdım ama genede olmadı
Localhostta adresin doğru yazılmamasından veya başka sebeplerden dolayı sorun verebilir. Normal hostta deneyin bi. Sorun çıkarsa yardımcı olurum yine.
Bence gayet açık bir anlatım faydalı bir bilgi :)
Anlatim süper olmus Tesekkürler. Bu sekilde özel yaptirilmis scriptide calintiya karsi lisanslamak mümkünmü.? Ve nasil
Mantık aynı. Farklı scriptleri de lisanslayabilirsiniz.
hocam sayfa lisans-al dedıgımden berı sayfaya gıremıyorum aktif olarak..
Nasıl? Anlamadım.
Hocam ben lisans-al php yi temanın bulunduğu klasöre attım site ismi yazan yere site ismimi yazdım sonra siteadi.com/lisans-al.php çalıştırdım sayfaya bir daha giremedim orjınal functions.php yı attım ondan sonra düzeldi yalnız benım sıtemın kurulu olduğu host local değil mysql3.00webhost.com gıbı bı sey ondan olabılır mı?
Hocam siz yanlış yapmışsınız. Konuyu dikkatli okuyun.
hocam anlatılan şekilde yapıyorum :) neyse yardımınız için teşekkürler.
Hocam yaptım sorun yok ancak bir sorum olacak diyelim bu işlemi yaptık anahtarı yanlış girdik sitenin hatası vermesi lazım doğal olarak bende site açılıyor ancak wp-admin giremiyor hatayı orda veriyor yanlış yaptığım birşeymi var acaba
Büyük bir ihtimal bir yeri atlamışsınızdır. Normalde siteye girmemesi lazım çünkü.
Peki bu sistemi kullandığımızda lisansları nereye kaydediyor. Yani lisans-al.php dosyasının bulunduğu site kapanırsa, temaları kullananlar mağdur mu oluyor?
Buradaki lisans.php dosyası farklı bir sunucuda bulunmuyor. Yani sizin sandığınız gibi bir lisanslama değil.
Yani, bu lisans sistemini kullandığımızda sürekli açık olan bir hostinge ihtiyacımız olmayacak. Doğru mu anladım?
Aynen öyle.
Son bir soru daha sorucam kusurabakmayın :) Buradaki algoritmayı değiştirmekten kastınız, şifrelemeyi değiştirmek mi? Yani mesela burada hatırladığım kadarıyla md5den sonra sha1’e dönüştürerek bir şifre oluşturuyordu. Ben bunu md5den, sha1’e, yine sha1’e ve sonra yine md5’e dönüştürsem, üstüne fonksiyon isimlerini değiştirsem $lisans_anahtari yerine $lisanscan gibi algoritmayı değiştirmiş olurmuyum?
Teşekkürler.
Evet, dediğiniz şekilde yaparsanız daha iyi olur.
Teşekkür ederim :) Yine yararlı bir yazı olmuş.
Hocam alt domaine nasıl uygularız.? blog.melihozdemir.com için.?
peki adam functions.php yi siler kendi function.php sini oluşturursa lisans sız kullanmış olmazmı..
Hocam çok faydalı bir içerik olmuş, nasip olursa en yakın zamanda deneme yapacağım. Takıldığım yerde size baş vururum artık :)
Yazıyı hortlatacak gibi olacağım ama, verdiğiniz ücretsiz site wordpress’te bende “Siteniz zorlukla karşılaştı” uyarısı alıyorum şifreleme yapıp kaydettikten sonra.
Ne yazık ki çok eski bir konu olduğu için ve şu an bu konu hakkında hiçbir fikrim olmadığı için yardımcı olamayacağım.
Çok faydalı bir paylaşım bu konuda acil yardıma ihtiyacım var
Hocam çok güzel yazmışsın ama ta ki şuraya kadar…. (Bu dosyayı localhostta çalıştırdığımızda bize bir lisans anahtarı verecek. Bu lisans anahtarını ise lisans.php dosyasındaki lisans anahtarını girin yazan kısma yazıp kaydediyoruz.) Localhostta bu dosya nasıl çalışacak onu biraz açar mısınız ?