$ _SERVER [“HTTP_HOST”]的安全性如何?

时间:2012-04-27 12:27:47

标签: php superglobals

我有一个充满网站网址的数据库,主要关键是网站的$_SERVER["HTTP_HOST"]

当用户导航到...时,请说www.my-epic-example-url.com,它将连接数据库并使用该网站的$_SERVER["HTTP_HOST"],然后获取引用该网站的所有数据!

我想知道的是,$_SERVER["HTTP_HOST"]有多安全?

可以外部修改吗?

我问的唯一原因是因为我读了一段时间的艺术品(不记得它在哪里)说使用$ _SERVER时要小心,因为它不安全......

这是真的吗?

1 个答案:

答案 0 :(得分:16)

$_SERVER["HTTP_HOST"]是从客户端发送的HTTP Host标头。这使得此标题通常不安全

但是,如果您处于典型的虚拟主机设置中,其中Web服务器根据VirtualHost配置决定执行哪个脚本,而VirtualHost配置又由HTTP Host标头触发,则您的脚本应该除非在该标头中收到已知的白名单值,否则不会被执行。

如果Web服务器不关心Host标头并为任何和所有请求执行某个脚本,那么这个值绝对可以是任何东西。