Ben bu eski bir yazı olduğunu biliyorum, ama "PHP $ _SERVER güvenliği" için Google'da hızlı bir arama yaparak bu yazı ile geldi ve ben görüyorum inanamadım.
Sen gerekir encode and check olursa olsun güvenli olduğunu düşünüyorum ne kadar tüm girişleri. Örneğin, HTTP_HOST sunucu değişken istemci tarafından gönderilen istek başlıklarına okunur. "Müşteri" her şey olabilir ... sadece örneğin bir PERL / python komut dosyası birisi bu başlıkları tüylenme özellikle yazdı ... tarayıcılar değil.
PHP belgelerine (tekrar) ...
'HTTP_HOST'
Contents of the Host: header from the current request, if there is one.
Istemci isteği içinde HTTP_HOST hemen hemen her zaman vardır. Bu tek değişken değil, Apache ve PHP do not sterilize / sizin için bu değişkenleri kodlamak. Sen kodlamak ve kontrol her zaman ve bu "generated by the server." dahil olmak üzere TÜM girişler için gereken
<?php
$server = array();
foreach($_SERVER as $k => $v)
$server[urlencode($k)] = urlencode($v);
if(!preg_match("...", "...", $server["X"]))
exit;
?>
Uygulamalar içine girdiler güvenli olduğunu varsayıyorum asla unutmayın. Sadece kodlamak ve ne olursa olsun başkalarının ne düşündüğünü her şeyi kontrol - Bu konuda tembel olmak değmez.