Merhabalar,
Bir Script yazdım ve güvenlik konusunda ne yapabilirim hiç bilgim yok, define yada defined vs mi kullanmam gerek? Nasıl kullanmam gerek?
Ben denediğimde direk anasayfaya erişemiyorum da.
Güvenlik Açısından Ne Yapabilirim
5
●424
- 21-02-2017, 18:59:25
- 21-02-2017, 21:04:50Farklı saldırı türlerine karşı farklı güvenlik türleri var. Ayrıca sizin kodlama yapınıza göre de değişir. Sayfaları tek bir index dosyasına include ediyorsunuz tahmin ediyorum. Bu durumda sadece index dosyanıza Define kullanıp diğer tüm sayfalara Defined kullanmanız yeterlidir. Bu yalnızca dosyalara dışarıdan direkt erişilmesini engeller başka bir şeye karşı sizi muhafaza edemez.TayfunGuler adlı üyeden alıntı: mesajı görüntüle
- 21-02-2017, 22:00:37Merhabalar,emerald adlı üyeden alıntı: mesajı görüntüle
Dediklerinizi deneyeceğim. Peki nasıl önlemler almamı tavsiye edersiniz? Scripti kullanacağım da. - 21-02-2017, 23:07:40Kısaca anlatılacak gibi değil ancak başlangıç için şuraya göz atabilirsiniz : https://www.owasp.org/index.php/PHP_...ty_Cheat_Sheet
- 22-02-2017, 01:46:48Merhaba,
Php yazılım dili sektörde en çok kullanılan dildir. Öğrenmesi kolay gibi görünür. 3 gün video izleyip uygulama geliştirmeye başlayanı bile gördüm.
Ama hafife alınmamalıdır. Çok kullanıldığı için çok fazla kaynak vardır. Ancak kaynakların çoğu güncel değildir ve bayağı bir kısmı amatör yazılımcıların bir hevesle başladıkları bloglarda yayınlanan başarısız içeriklerdir. En azından Türkçe için olanlar böyle.
Bir php uygulamasının güvenliğini sağlamak öyle kolay bir iş değildir. Benim aklımda kalan yaklaşık 130 tane test var ve bunlar sadece en gerekli olanlar. Bir o kadar da önem derecesi düşük testler var. Penetration tester diye bir iş dalı var sadece sızma testleri yapıyorlar. İnanın uygulamadan çok kazanıyor çoğu zaman.
Php ye yeni başlayan kişilere nacizane önerim framework öğrenmeleridir.
Çoğu frameworklerin özellikle symfony gibi laravel gibi çok kullanılanların çekirdeklerinde birçok güvenlik açığına karşı sizin yerinize önlem alınmıştır. Mesela xss saldırıları, csrf, sql injection, shell_executing gibi en çok kullanılan saldırılara karşı korunaklıdır.
Peki framework kullanmak yeter mi? Tabii ki hayır. Genel geçer kuralları, best practiseleri bilmeniz gerekir.
Mesela karşılaştırma yaparken her zaman === (denk midir) yerine ==(eşit midir) kullanıyorsanız framework de sizi kurtaramaz. Eğer == kullanırsanız başınıza gelecek bir bug vereyim.
$islem = 5-5; if($islem == 0){ echo "islem sonucu doğru";}Yukarıdaki patladınız. Çünkü if komutunda biz işlem sonucu sıfır mı diye kontrol etmek isterken işlem false mi döndü diye kontrol etmiş bulunduk. Ancak islem değişkeni gerçekten var olduğu için ve if komutundaki islem degiskeni true döndüreceği için yani false olmadığı için işlem sonucu doğru diye birşey yazmayacak ekranda. Burada === kullansaydık sayı olan 0 olarak algılayacaktı.
Yine başka bir önemli durum, değişken türlerini kontrol etmek. Bir inputtan siz tam sayı bekliyorsunuz, html formda input type number yaptınız. Text girilemiyor. Ama adam gitti geliştirici seçeneklerinden o number ı text yaptı. Sonra bastı forma istediğini gönderdi. Siz php tarafında bu gelen sayı mı diye kontrol etmediyseniz bu bir bug dır.
$sayi=(int)$_POST["sayialani"];
Şeklinde gelen değişkenin tam sayı olup olmadığını kontrol etmeniz gerekir. Bunlara dikkat etmezseniz başınız bir gün mutlaka ağrır.
Framework kullanılmadan hazırlanan bir uygulama patlamaya hazır bombadır. Bir yerde patlarsa sorunu siz bulana kadar iş işten geçmiş olur. Düzgün bir log kaydınız yoksa, kodlarınız okunaklı değilse, hele bir de spagetti kodladıysanız vay halinize.
Salt php ile hazırlanan önemli uygulamalar mutlaka profesyoneller tarafından yazılmalıdır. Aslında her proje bir frameworktür. Yani sizin projenize göre kendi frameworkünüz oluşur. Ancak tüm bu önlemleri almanız uzun sürer. 100 bin tl den düşük bütçeli işler için kesinlikle hazırframework kullanılmalıdır, Amerikayı yeniden keşfetmeye gerek yok değil mi?
Yani o güvenlik işleri sabit tanımlamakla, sessionları encrypt etmekle yada forumlarda ve bloglarda sıkça gördüğümüz html_special_chars gibi fonksiyonlarla olacak iş değildir. Siz siz olun işinizi sağlama alın. Üşenmeyin framework öğrenin.
Sevgilerle. - 22-02-2017, 20:30:11Çok güzel açıklamışsınız teşekkür ediyorum.mpoy8 adlı üyeden alıntı: mesajı görüntüle