【问题标题】:PHP $_SERVER['HTTP_HOST'] escaping, does this look acceptable?PHP $_SERVER['HTTP_HOST'] 转义,这看起来可以接受吗?
【发布时间】:2009-09-22 19:32:50
【问题描述】:

我只是在学习如何逃避事情,并开始阅读有关由于 XSS 攻击而使用 $_SERVER['HTTP_HOST'] 的风险。

我想出了这个,想知道是否可以就我的尝试获得一些反馈。

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

看起来还好吗?

很大程度上取决于这个变量是否安全,我只需要请求输入。

编辑:

我将在整个站点中使用它来显示,包括基本的锚href、表单操作等。

【问题讨论】:

    标签: php escaping


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      这取决于你想用什么。如果要显示它,请使用 htmlspecialchars。如果您想用作数据库查询,您可以在 mysql 的情况下使用 mysql_real_escape_string。 (或准备好的语句)

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 1970-01-01
        • 2010-11-30
        • 1970-01-01
        • 2018-05-23
        • 2018-10-04
        • 2014-04-14
        • 2015-08-09
        相关资源
        最近更新 更多