我正在学习逃避的事情,并开始阅读由于XSS攻击而使用$_SERVER['HTTP_HOST']
会有什么风险。
我想出了这个,并想知道我是否能得到一些关于我的尝试的反馈。
htmlspecialchars(
filter_var( $_SERVER[ 'HTTP_HOST' ], FILTER_SANITIZE_URL ),
ENT_QUOTES, 'UTF-8'
)
看起来不错吗?
在很大程度上取决于这个变量是安全的,我只需要输入。
修改
我将在整个网站上使用它进行显示,包括基本的锚点hrefs,表单操作等。
答案 0 :(得分:3)
这取决于你想要用什么。如果要显示它,请使用htmlspecialchars。如果要将其用作数据库查询,则可以在mysql的情况下使用mysql_real_escape_string。 (或准备好的陈述)
答案 1 :(得分:3)
不同的转义函数应该用于不同的情况,例如:
urlencode
表示将在<a>
标记的查询字符串中删除的项目,即。 echo '<a href="index.php?foo=' . urlencode($foo) . '">';
(另见http_build_query
)mysql_real_escape_string
用于SQL语句中的变量(虽然我更喜欢绑定变量)htmlentities
表示您要向用户显示的字符串,可能包含HTML(另请参阅strip_tags
)