PHP $_SERVER [‘HTTP_HOST’]转义,这看起来可以接受吗?

我正在学习逃避的事情,并开始阅读由于XSS攻击而使用$_SERVER [‘HTTP_HOST’]会有多大风险.

我想出了这个,并想知道我是否可以得到一些关于我的尝试的反馈.

htmlspecialchars(
    filter_var( $_SERVER[ 'HTTP_HOST' ], FILTER_SANITIZE_URL ),
    ENT_QUOTES, 'UTF-8'
)

看起来好吗?

这么多取决于这个变量是安全的,我只需要求输入.

编辑:

我将在整个网站上使用它进行显示,包括基本的锚点hrefs,表单动作等.

解决方法:

不同的转义函数应该用于不同的情况,例如:

> urlencode表示将在< a>中的查询字符串中删除的项目标签,即. echo’< a href =“index.php?foo ='.urlencode($foo).'”>‘; (另见http_build_query)
> mysql_real_escape_string变量进入SQL语句(虽然我更喜欢绑定变量)
> htmlentities表示您想要显示给用户的字符串,其中可能包含HTML(另请参阅strip_tags)

上一篇:输出在我的PHP中转义(html标签呈现原样)


下一篇:Java单例和多例