Php kodları nasıl şifreleyebilirim?

Kodla Büyü

nuribjk

Seçkin Üye
Seçkin Üye
Mesajlar
301
Merhaba arkadaşlar, php ile hazırladığım bir sayfayı kodlamak için ne yapabilirim.
Buradaki kodlamadan kastım kaynak kodların şifrelenmesidir.
Zend guard yada başka bir programı kullanmadan, işin mantığını anlayarak kodları kendim şifrelemek istiyorum.
Bu konuda daha önce kafa yorun varmı, varsa nasıl bir çözüm üretti merak ediyorum :)
 
Öncelikle kodları şifreleme ve çözme konusunda sunucu tabanlı bir uygulama yaratmanız gerekecek. Ioncube, Zend quard vb. çözümlerde sunucuya yüklü bir program php dosya isteği olduğunda bunu yakalayıp, ilgili dosyayı çözüm istemciye iletir. Dolayısıyla sadece kodlarınızı şifrelemek yetmeyecek, bir de onları çözecek sunucu tabanlı bir uygulama da gerekecek. Hem kodlama işlemini hem de çözme işlemini kendi php dosyalarınız içerisinde yaparsanız da bu durumda projenizi ele geçiren herhangi biri algoritmayı çözüp, işine devam edebilir. Eğer böyle bir çözüm düşünüyorsanız, ancak acemiler için bir çözüm olacağını, scriptinizi ele geçirmeyi düşünen bir profesyonel için engel olmayacağını unutmayınız.
 
Hocam aslında şifrelemenin farklı methodları var, ama şifreleme değil de Compile ederek yani Windows'ta Exe ya da DLL yaparak, Linux üzerinde de bir program haline getirerek sorununu çözebilirsin ama FSF'nin ana felsefesine aykırı olduğu, kullandığın dil GPL ile lisanslanmış tamamiyle açık kaynaklı ve özgür bir uygulama olduğu için kısaca PHP'nin felsefesine aykırı olduğundan seni kınıyor ve çözüm yolunu anlatmıyorum.

Sana tavsiyem yaptığın yazılımı GPL ile lisanslaman ve kodlarını güvenli olarak paylaşman.
Ayrıntılı bilgi için http://www.gnu.org/copyleft/gpl.html ve http://www.fsf.org

MUŞ.MEM için yazdığım kodu GPL ile lisansladım. Dağıtımı serbest fakat ismimi zikretmek zorundalar. Lisans ayrıntıları bütün kod yığınlarının başlangıcında bulunuyor.
http://mus.meb.gov.tr/gpl.txt
 
neden ioncube, zend ya da sourcecop gibi bir program kullanmıyorsun? web üzerinde online şifreleme de var ama sağlıklı değil malesef...
 
bu programları kullanmıyorsan her türlü şifreleme tekniği profesyonel biri tarafından çözülebilir.
ayrıca bu şifreleme teknikleri performansı da düşürür, çünkü her sayfa icraatinde deşifrele-şifrele-deşifrele-deşifrele-şifrele-şifrele-deşifrele-şifrele gibi adımlar vardır.
 
mantığını anlaman için bir tane şifreleme tekniği göstereyim. basit anlaşılır olsun diye base64_code ve base64_decode fonksiyonlarını kullanacağım
şifrelenecek sayfamız alttaki olsun
Kod:
<?php
print "Rüzgara Karşı";
?>
şifreleme işini yapacak sayfamız da alttaki olsun
Kod:
<?php
$sifrelenmis_veri = base64_encode("print \"Rüzgara Karşı\";");
print "eval(base64_decode(\"$sifrelenmis_veri\"));";
?>
bu sayfayı çalıştırdığında ekrana gelecek çıktı, sayfalanmış şifredir. yani bu sayfanın çıktısını php sayfasına eklersen "Rüzgara Karşı" yazısını göreceksin.
açıklayım bunları. ilk başta print "rüzgara karşı"; içeriğimizi base64_encode ile şifreledim
şifrelenmiş veriyi base64_decode ile deşifreledim
eval fonksiyonu ile içeriği icraa ettirdim. eval fonksiyonunu kullanmasaydık içerik sadece çıktı olacaktı, komut olarak icraa edilemeyecekti.
son adımda ise bu şifrele algoritmasını print ile ekrana yazdırdım
base64_code ve base_encode şifreleme fonksiyonları yerine gzinflate ve base64_decode şifreleme fonksiyonlarını kullanabilirdim. hatta içiçe 5-10 tane şifreleme fonksiyonu da yapabilirdim ama anlaşılır olsun diye bu fonksiyonları kullandım.
bunları az önce kodladım, kendi sunucumda denedim çalıştı. geliştirmek senin elinde...
 
Rüzgara Karşı' Alıntı:
mantığını anlaman için bir tane şifreleme tekniği göstereyim. basit anlaşılır olsun diye base64_code ve base64_decode fonksiyonlarını kullanacağım
şifrelenecek sayfamız alttaki olsun
Kod:
<?php
print "Rüzgara Karşı";
?>
şifreleme işini yapacak sayfamız da alttaki olsun
Kod:
<?php
$sifrelenmis_veri = base64_encode("print \"Rüzgara Karşı\";");
print "eval(base64_decode(\"$sifrelenmis_veri\"));";
?>
bu sayfayı çalıştırdığında ekrana gelecek çıktı, sayfalanmış şifredir. yani bu sayfanın çıktısını php sayfasına eklersen "Rüzgara Karşı" yazısını göreceksin.
açıklayım bunları. ilk başta print "rüzgara karşı"; içeriğimizi base64_encode ile şifreledim
şifrelenmiş veriyi base64_decode ile deşifreledime
eval fonksiyonu ile içeriği icraa ettirdim. eval fonksiyonunu kullanmasaydık içerik sadece çıktı olacaktı, komut olarak icraal edilemeyecekti.
son adımda ise bu şifrele algoritmasını print ile ekrana yazdırdım
base64_code ve base_encode şifreleme fonksiyonları yerine gzinflate ve base64_decode şifreleme fonksiyoinlarını kullanabilirdim. hatta içiçe 5-10 tane şifreleme fonksiyonu da yapabilirdim ama anlaşılır olsun diye bu fonksiyonları kullandım.
bunları az önce kodladım, kendi sunucumda denedim çalıştı. geliştirmek senin elinde...

Base64 ile yapacağın şifreleme 2 adımda çözülebilecek düzeyde olur. En iyisi yukarıda yazdığım gibi GPL ile lisanslamak. Bırak kodunu görsünler ama kopyalayamasınlar.
 
ali_cmen' Alıntı:
Rüzgara Karşı' Alıntı:
mantığını anlaman için bir tane şifreleme tekniği göstereyim. basit anlaşılır olsun diye base64_code ve base64_decode fonksiyonlarını kullanacağım
şifrelenecek sayfamız alttaki olsun
Kod:
<?php
print "Rüzgara Karşı";
?>
şifreleme işini yapacak sayfamız da alttaki olsun
Kod:
<?php
$sifrelenmis_veri = base64_encode("print \"Rüzgara Karşı\";");
print "eval(base64_decode(\"$sifrelenmis_veri\"));";
?>
bu sayfayı çalıştırdığında ekrana gelecek çıktı, sayfalanmış şifredir. yani bu sayfanın çıktısını php sayfasına eklersen "Rüzgara Karşı" yazısını göreceksin.
açıklayım bunları. ilk başta print "rüzgara karşı"; içeriğimizi base64_encode ile şifreledim
şifrelenmiş veriyi base64_decode ile deşifreledime
eval fonksiyonu ile içeriği icraa ettirdim. eval fonksiyonunu kullanmasaydık içerik sadece çıktı olacaktı, komut olarak icraal edilemeyecekti.
son adımda ise bu şifrele algoritmasını print ile ekrana yazdırdım
base64_code ve base_encode şifreleme fonksiyonları yerine gzinflate ve base64_decode şifreleme fonksiyoinlarını kullanabilirdim. hatta içiçe 5-10 tane şifreleme fonksiyonu da yapabilirdim ama anlaşılır olsun diye bu fonksiyonları kullandım.
bunları az önce kodladım, kendi sunucumda denedim çalıştı. geliştirmek senin elinde...

Base64 ile yapacağın şifreleme 2 adımda çözülebilecek düzeyde olur. En iyisi yukarıda yazdığım gibi GPL ile lisanslamak. Bırak kodunu görsünler ama kopyalayamasınlar.
hocam yazımı okumadın mı?
anlaşılsın diye bu komutları kullandım, basitçe yaptım diye ben söyledim zaten, sen de rahatça çözülür diyorsun, ilginç :D
kendim için yapsaydım bir sürü şifreleme fonksiyonu var, onları kullanırdım. base64_code ve base64_encode 'ı birarada kullanmazdım bile... hatta kendim bir şifreleme-deşifreleme(bana özgü) fonksiyonu oluştururdum bunların yanında...
öyle rahatça çözülemezdi :mrgreen:
 
Kodu gördüklerinde neden kopyalayamasınlar?
PHP GPL lisansına sahip bir dildir ancak bu, bu dilde yazılacak scriptlerin de GPL lisanslı olacağı anlamına gelmemektedir. Dolayısıyla insanların kodlarını gizlemek istemeleri onların en temel haklarıdır.
 
yakuphan' Alıntı:
Kodu gördüklerinde neden kopyalayamasınlar?
PHP GPL lisansına sahip bir dildir ancak bu, bu dilde yazılacak scriptlerin de GPL lisanslı olacağı anlamına gelmemektedir. Dolayısıyla insanların kodlarını gizlemek istemeleri onların en temel haklarıdır.
hocam söylediklerin benim de aklımdaydı ama konuyu uzatmamak için söylememiştim ;)
yani php açık kaynak kodlu ama php ile yazılacak bir sistemin açık kaynak olması ne alaka, elma ile armutu kıyaslamak oluyor bu
 
Rüzgara Karşı' Alıntı:
yakuphan' Alıntı:
Kodu gördüklerinde neden kopyalayamasınlar?
PHP GPL lisansına sahip bir dildir ancak bu, bu dilde yazılacak scriptlerin de GPL lisanslı olacağı anlamına gelmemektedir. Dolayısıyla insanların kodlarını gizlemek istemeleri onların en temel haklarıdır.
hocam söylediklerin benim de aklımdaydı ama konuyu uzatmamak için söylememiştim ;)
yani php açık kaynak kodlu ama php ile yazılacak bir sistemin açık kaynak olması ne alaka, elma ile armutu kıyaslamak oluyor bu

Saygıdan hocam. Eğer açık kaynak kodlu bir programlama diliyle yazıyorsam saygım devreye girer.
 
ali_cmen' Alıntı:
Rüzgara Karşı' Alıntı:
yakuphan' Alıntı:
Kodu gördüklerinde neden kopyalayamasınlar?
PHP GPL lisansına sahip bir dildir ancak bu, bu dilde yazılacak scriptlerin de GPL lisanslı olacağı anlamına gelmemektedir. Dolayısıyla insanların kodlarını gizlemek istemeleri onların en temel haklarıdır.
hocam söylediklerin benim de aklımdaydı ama konuyu uzatmamak için söylememiştim ;)
yani php açık kaynak kodlu ama php ile yazılacak bir sistemin açık kaynak olması ne alaka, elma ile armutu kıyaslamak oluyor bu

Saygıdan hocam. Eğer açık kaynak kodlu bir programlama diliyle yazıyorsam saygım devreye girer.
neyse hocam konuyu uzatmaya gerek yok :)
isteyen kodu şifreler isteyen şifrelemez. şifrelemek isteyen üstte yazdığım tekniği kullanabilir...
 
Rüzgara Karşı' Alıntı:
neden ioncube, zend ya da sourcecop gibi bir program kullanmıyorsun? web üzerinde online şifreleme de var ama sağlıklı değil malesef...

Hocam araştırdığım kadarıyla bu programlarla kodlanan siteler için decode amaçlı çözücü programlarda geliştirilmiş, forumlarda rahatlıkla bulunan bu programlar sayesinde kodların çözülebileceği söyleniyor. Ama 3 programı ve diğer çözüm önerilerini tek tek inceleyeceğim.

Ayrıca hocamın dediği gibi konu uzamasın diye eleştirinize cevap vermiyorum :)

Konuya cevap yazan herkese çok teşekkür ederim. Şu an hepsini araştıracak kadar zamanım yok ama inş. gece geldiğimde tek tek sabaha kadar bakacağım, eğer 3-5 güne kadar çözümüm budur diyebileceğim birşey bulursam burada seve seve paylaşırım. :wink:
 
konuya çok geç daldık ama :)
zend studio hakkında türkçe kaynak, link vs.. olan arkadaşlar varmıdır?
 
@ali_cmen hocamın mantığını anlayabiliyorum ama atladığı noktalar var.
Programların ya da işletim sisteminin Açık kaynak lisansı olması onun üzerinde değişiklik düzeltme yaptığınızda bu yaptığınız işlemlerin son halini yayınlama mecburiyeti getirir. ama açık kaynak programlarla üretilen yeni programlar uygulamalarınızı satabilirsiniz. çünkü para kazanmak için oturup bu işi yapıyorsunuz. peki yeni yaptığınız uygulama kodlarını da yayınlarsanız o kodlara para vermeden alıp kullananlar olacaktır. isminizi zikredip zikretmediklerini nasıl bulacaksınız bu sanal alemde nasıl hak arayacaksınız ? işin bu boyutu var.
ayrıca ücretli lisans haline getirilmiş sunucu işletim sistemleri var linux tabanlı. kodları verirlerse adamların o kadar emeğini alıp bunlar sağolsun diye kullanırsam nolcak. o adam saygı için açtı kodları ben saygısızlık yaptım benim gibi 100 lerce kişi de bu saygısızlığı yaptı o adam nasıl emek yiyecek bu boyutu da ele almalı.

redhat fedora konusunu açmadan çıtlatmış olayım anlayacaktır.
 
BBNET
Geri
Üst