[REQUEST_METHOD] manipulable $ _SERVER mi?

4 Cevap php

Bir PHP projesinde ben POST olabilir ya da GET istekleri bir çift var geliştiriyorum. Şu anda, hangi istek dizi kullanmak için belirlemek için $ _SERVER [REQUEST_METHOD] değerini kullanıyorum. Ben $ _REQUEST değerleri kurabiye ile manipüle edilebilir, saldırılara $ _SERVER süper savunmasız olduğunu biliyor musun?

4 Cevap

$ _SERVER Süper bu web sunucusundan alır verilerle PHP ile doldurulur.

Saldırgan kendi ile web sunucusu değiştirir veya sunucuya karşı son derece şanslı bir tampon taşmasına yönetir Yani sürece, sen gayet iyi.

REQUEST_METHOD POST sınırlı ve ancak GET değil - Ayrıca (bu başlığı görünce IIRC PHP çıktı ilk işareti komut sonlandırılacak) ve (olası kurulumları) birkaç WebDAV olanları alabilirsiniz KAFA işlemek gerekir.

Hangi anlamda _REQUEST tanımlama ile "manipüle" Be $ olabilir? Çerezler POST gelen değerleri geçersiz ve GET, ama all three values doğrudan istekte istemci tarafından kontrol edilir yok.

GET ve POST çerezleri üzerinde önceliğe sahip olmak istiyorsanız, size php.ini içinde değişken request_order ayarlayabilirsiniz:

request_order = CGP

(Ki post' priority over çerezleri üzerinde 'almak verir). Hatta tamamen C dışarı bırakabilirsiniz.

En çok oy cevap yanlış ve güvenlik önemli bir husustur beri eski konu ama, başlıyoruz: $ _SERVER içinde sadece REQUEST_METHOD değil, aynı zamanda diğer değerler kusurlu olabilir.

See for example http://www.php.net/manual/en/reserved.variables.server.php#95672 and http://shiflett.org/blog/2006/mar/server-name-versus-http-host

Yani körü körüne onlara güvenmiyorum.