php çerçeveler ve güvenlik

3 Cevap php

Bir web geliştiricisi olarak PHP kullanıyveyaum ve ben güvenlik konusunda endişelenmenize gerek olduğunu biliyveyaum ama bir çerçeve kullveığınızda, veyaada röle çok-kodu ve tasarım ama bu öyle değil kodu veya tasarım ve örneğiçinde Ben CakePHP'ye kullanıyveyaum.

  • so içinde this case with framewveyaks how much should i wveyary about security ?

3 Cevap

Her zaman güvenlik temel ilkelerine saygı devam etmelidir:

  • kullanıcı güvenmiyorum
  • kullanıcıyı asla güven

Hangi tür şu anlama gelir:

  • filtre / uygulamanıza gelen her şeyi doğrulamak
  • herhangi bir çıktı kaçış.


Using a framework doesn't change much about that, except that :

  • Veritabanına çıktı sık sık kaçan uğraşmak gerekir çerçevesinin bazı katmanı, es
  • Altyapıları genellikle filtreleme / doğrulama çözümleri sunmak; bunları kullanmak ;-)
  • Altyapıları genellikle bazı kurallar var; bunları okuyun.


As a sidenote : you said this :

there is a lot-of code and design that you relay on but that you didn't code or design

Eğer sürü insan kullanmak bilinen bir çerçeve kullanarak göz önüne alındığında, bu kod muhtemelen daha herhangi bir kod daha gözden / test edilmiştir yazabilirsiniz ;-)

Bu aslında, açık kaynak bir avantajı: Eğer kodu için bir tek sorumlu değildir, ve gözleri çok gördük - ellerin çok onu artırdıkları anlamına gelir ki.

Bir uygulama güvenliği ile ilgili dikkate alınması gereken bir çok şey vardır. Pascal söylediğim gibi, ona bakarak bir kaç kişi olmuştur popüler bir çerçeve kullanmak iyi bir fikirdir.

CakePHP açısından endişe birkaç alanları görmek.

Ilk konu son kullanıcı. Eğer birisi inşa her sayfada aptalca bir şey yapmak için beklemek gerekir. Bu bazı örnekler şunlardır:

  • Hızla ve üzerinde Gönder düğmesini tıklayarak bir kişi. Eğer dikkatli değilseniz, bu şekilde sistem çarpık ya da pisliği olabilir. Bunun için çözüm çerçevesine dayanan, ama oldukça kodlama metodolojisi ve test değildir.
  • SQL Enjeksiyon ve diğer kötü şeyler. Sayfadaki herhangi bir alan potansiyel nedenle her form elemanı dezenfekte edilmesi gerekir, istismar edilebilir. CakePHP bu güvenlik sorunları dikkat çekmek için basit yöntemler vardır. http://book.cakephp.org/view/153/Data-Sanitization
  • Temiz URL çok önemlidir. Eğer bir kullanıcı doğrudan bir tamsayı birincil anahtarları erişmenizi sağlayan bir sistem tasarımı asla. Örneğin, / show_user/2098 olan bir site varsa o birisi sadece başkasının hesabını görmek için show_user/2097 yazabilirsiniz. CakePHP Eğer bunun olmasını önlemek için, oldukça kolay salyangozlar ya da UUID dahil sağlar.

İkinci olarak, kod ve izinleri kendisi ile ilgili saldırıları ile ilgili olmalıdır. Örneğin:

  • Son kullanıcı gelebilecek veri kodunuzu eval () veya sistem () asla kullanmayın. Çünkü bu sorunun kaçırılmıştır perl ile yazılmış geçmişte uygulamalar olmuştur.
  • Klasör yapısı ve izinleri güvenliği açısından önemlidir. Kullanıcılar yazılabilir dizine almak erişimi asla. App / webroot doğrudan Apache Point böylece CakePHP ile klasör yapısı tasarlanmıştır. Bu tmp dizin biraz daha güvenli sistem yapma, apache yolun dışında olduğu anlamına gelir.

Üçüncü olarak, yönetim sayfaları korunması ile ilgili olması ve ne erişmek için gerekli izinlere sahip olanlar olmalıdır.

  • CakePHP bir Yetkilendirme ve kullanıcıların sayfaları erişmek ne seçmek için izin veren bir Acl bileşeni vardır. Bu PHP kullanarak, bir veritabanında saklanan veya dosya sistemi için yazılmış olabilir özel Kek Sessions kullanır.

Ben önemli bileşenlerinden bazıları üzerinde okuma ve size güvenlik kusurları olmaksızın bir uygulama inşa doğmak için, bunları düzgün kurmak emin olmak öneririm. http://book.cakephp.org/view/170/Core-Components: Eğer daha fazla araştırma olarak bu unsurların bir göz atın

Ben ESAPI kontrol öneririm: http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API#tab=PHP

Bu haddizatında bir çerçeve değil, Pascal bahseder sorunları için birçok araç içermiyor.