Ben register_globals
hatırlatıyor çünkü, kod koku gibi düşünüyorum superglobali $_REQUEST
, kullanarak önerilen son zamanlarda popüler PHP ile ilgili cevaplar bir çift geldim.
Neden $_REQUEST
kötü bir uygulamadır iyi bir açıklama / kanıt sağlayabilir? Ben kazılıp ettik örnek bir çift dışarı atarım, ve teorik bir saldırı vektörleri ve gerçek dünya patlatır yanı sıra, makul adımlar önerileri sysadmin kısa (riskini azaltmak için alabilir hem de daha fazla bilgi / perspektifi isterdim Uygulamayı yeniden ... ya biz need yönetimine gidin ve bir yeniden yazma ısrar mı?).
Example vulnerabilities: Standart GPC
dizisi birleştirme sipariş COOKIE değerleri GET ve POST geçersiz olduğu anlamına gelir, böylece $_REQUEST
XSS ve HTTP saldırılar için kullanılır. PHP çerez vars süper küresel dizileri üzerine yazmak sağlar. İlk 10 slaytlar this talk örnekleri (bütün konuşma büyük) vermek. CSRF saldırı phpMyAdmin exploit örnek.
Example countermeasures: yeniden yapılandırın $_REQUEST
dizisi GPC
CGP
arası birleştirme-sipariş öylesine / POST etrafında değil başka bir yol, COOKIE üzerine yazma GET. Suhosin Süper küresellerin yazmayı engellemek için kullanın.
(Benim soru bir dupe olduğunu düşündüm eğer Ayrıca, soran olmaz, ama SO "When and why should $_REQUEST be used instead of $_GET / $_POST / $_COOKIE?" idi cevap mutlulukla ezici "Asla.")