PHP'de güvenlik ve hız konusunda tecrübelerinizi merak ediyorum. inputtaki veriyi addslash ile almak gibi ya da mysql e kayıtta filtrelemek gibi ya da XSS, sql injection açıklarını kapatma yntemleri gibi ya da OOP fonksiyon yazarken public private protected _contructor kullanmanın nemi gibi konular. Tabi rnek olsun diye verdim bu başlıkları sizden çok çeşitli bilgiler istiyorum. nceliğim Güvenlik konusu.

Genel geçer bilgileri hepimiz biliyoruz arkadaşlar, madem bunun üzerine kitap yazılır illa ki yazılmıştır o zaman paylaşın. Ya da usta yoda gibi hislerini kullan falan demeyin, teknik bilgi veriyorsanız verin vermiyorsanız yazmayın.

Sonunda adam gibi bir konu ya..

hız konusunda print-echo arasındaki fark gibi şeylere hiç takılma zaten hocam. senin için hızla ilgili problemler hep algoritmanla alakalı olacaktır. gereksiz dngüden, sorgudan kurtulduktan sonra seni zorlayacak bireşy olmaz. echo ile print arasındaki performans farkını bırak facebook düşünsün :) herkes programcı olmak zorunda değildir, lütfen bir zorunluluk gibi programlama dilleri ğrenmeye çalışmayın. yabancı dil filan ğrenin amq.// s. kimin etini yerim, kasaba minnet etmem.// ince düşünene kalın girer.//

Hız : hız yazdığın kodun tamamıyla alakalıdır. bloglarda forumlarda felan grüyoruz yok print fonksiyonu echodan daha hızlı şu şundan bu bundan hızlı diye. byle şeylere takılma. Kodu bi bütün olarak düşün. genelde en kasıntı yerler dngüler ve sorgulardır. Projeler yaptıkça onlarda yerine oturur zaten. Güvenlik : xss sql injection vs alayı için dkümanlar blümünde çok güzel yazılar var yararlanabilirsin. ama saldırının mantığını anlamazsan güvende olamazsın.

kaynaklar, işe yararları buldukça editleyeceğim: http://www.php.net/manual/en/security. database. php http://www.phpfreaks.com/tutorial/php-security http://www.devshed.com/c/a/PHP/PHP-Security-Mistakes/ http://phpsec.org/projects/guide/ http://php.robm. me. uk/ https://www.owasp.org/index. php/Top_10_2010-Main http://docforge.com/wiki/Web_application/Security http://www.addedbytes.com/articles/writing-secure-php/writing-secure-php-1/ http://php.net/manual/en/security. database. sql-injection. php http://shiflett.org/articles/cross-site-request-forgeries https://www.owasp.org/index. php/Cross-site_Scripting_ http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords kvasir tarafından 14/Kas/12 14:42 tarihinde düzenlenmiştir

sql inj için kaynağa ihtiyacın varsa http://tahribat.com/Dokuman-Php-Ile-Basit-Sql-Injection-Onleme-Yontemleri-417/ teşekkür ederim.

Kaynakları düzenledim.

şu sorduğun soru üzerine kitap yazılır, bi yoruma sığacak şey değil ki. püf nokta istiyorsan; bütün açıkların nasıl çalıştığını bil ve kendi yazdığın sistemin açığını başkalarından nce kendin bulmaya çalış. zamanla kodu yazarken alışacaksın geçen burda şyle yapmıştım açık çıkmıştı o yüzden byle yapmam lazım diye. . . .. . ... .

Hataları ekrana bastırma. error_reporting kapalı olsun. Hata çıkabilecek yerlerde @ kullanma. Bunun yerine hata çıkabilecek yeri nceden kestirip ekstra sorgular ekle. Bunun halının altına süpürmekten farkı yok. SQL işlemlerinde biliyorsan pdo sınıflarını kullan. Bilmiyorsan dikkat etmen gerekenleri yukarıdaki başlıktaki anlatımımda syledim. Pdo kullanırsan bu kadar ince düşünmene gerek kalmaz. echo, print falan filan hangisini kullanacaksan kendin seç farketmez. Çok uç nokta projelere girişmediğinde müddetçe aradaki farkı hissetmeyeceksin. Tek tırnak mı çift tırnak mı olayına yine uç proje yapmadıkça takılma. Değişkeni çzümlendirip php'yi yavaşlatmayayım diye koca bir satırı çkarınca duasına çevirmenin manası yok. Db'den veri çekerken select from xx şeklinde tüm verileri çekme. Lazım olduğu kadar, kullanacağın kadar veriyi çek. Get değerleriyle iş yaparken gelen verinin aradığın türde olup olmadığını sorgula. Eğer şüpheye düşersen hiç bir işlem yaptırma, veriyi düzenlemeye, filtrelemeye falan çalışma. Eğer komplike bir sistem hazırlamaya çalışıyorsan, class yapılarını ve tasarım desenlerini az çok biliyorsan mümkün olduğunca oop tarzı yazmaya çalış. Ama çıkıpta tek bir sayfa işlem yapılacak yerde sınıf yazıp getter setter bilmemne tanımlamaya kalkma. İşin yerini bil, yerine gre iş yap. Hazır sınıf çok işine yaramadıkça kullanma. Hatta php'yi güzelce ğren, kendi sınıfını yaz onları kullan. Eğer piyasa senin için nemliyse piyasada en çok talep edilen sınıfı genel hatlarıyla ğren, iş yapacağın zaman alt dalları nasılsa bir şekilde ğrenirsin. Hayatını bir sınıfı ğrenmeye harcama. Mysql yerine mysqli kullan. Geleceğe yatırım. Mysql'in gelişimi durdu.

sql inj için kaynağa ihtiyacın varsa http://tahribat.com/Dokuman-Php-Ile-Basit-Sql-Injection-Onleme-Yontemleri-417/