8

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

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

我想知道的是,安全性如何$_SERVER["HTTP_HOST"]

可以外部修改吗?

我问的唯一原因是因为我不久前读过一篇文章(不记得它在哪里)说使用 $_SERVER 时要小心,因为它不安全......

这是真的?

4

1 回答 1

19

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

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

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

于 2012-04-27T12:35:32.787 回答