我有一个充满网站网址的数据库,主要关键是网站的$_SERVER["HTTP_HOST"]
。
当用户导航到...时,请说www.my-epic-example-url.com
,它将连接数据库并使用该网站的$_SERVER["HTTP_HOST"]
,然后获取引用该网站的所有数据!
我想知道的是,$_SERVER["HTTP_HOST"]
有多安全?
可以外部修改吗?
我问的唯一原因是因为我读了一段时间的艺术品(不记得它在哪里)说使用$ _SERVER时要小心,因为它不安全......
这是真的吗?
答案 0 :(得分:16)
$_SERVER["HTTP_HOST"]
是从客户端发送的HTTP Host
标头。这使得此标题通常不安全。
但是,如果您处于典型的虚拟主机设置中,其中Web服务器根据VirtualHost配置决定执行哪个脚本,而VirtualHost配置又由HTTP Host
标头触发,则您的脚本应该除非在该标头中收到已知的白名单值,否则不会被执行。
如果Web服务器不关心Host
标头并为任何和所有请求执行某个脚本,那么这个值绝对可以是任何东西。