【问题标题】:Securing $_SERVER variables保护 $_SERVER 变量
【发布时间】:2011-03-25 00:23:16
【问题描述】:

我正在开发一个大型 Web 应用程序,该应用程序严重依赖使用 $_SERVER[php_self] 和 $_SERVER[query string] - 我知道这些做法很糟糕,但是客户只关心它在短期内得到修复术语,相信我它是巨大的,所以我必须找到一种方法来保护变量。一个例子是表单操作是 php_self 和一个查询字符串(如果设置了),所以很容易弄乱 URL 并发生一些 XSS。所以我的超快速修复是遍历 $_GET 和 htmlspecialchars 它们,这不允许我知道的 XSS(这不是很多) - 所以我想知道我还能做些什么来防止它们被滥用?想法?

谢谢!

【问题讨论】:

    标签: php security xss


    【解决方案1】:

    你不能只使用以下内容:

    $_SERVER['PHP_SELF'] = htmlentities($_SERVER['PHP_SELF'])
    

    在一些全局包含() 的文件中?

    如果可能的话,或者在您的网络服务器中禁用 PATHINFO。据我了解,这也会有很长的路要走。

    这里还有一些可能有用的信息:http://www.mc2design.com/blog/php_self-safe-alternatives

    【讨论】:

    • 这就是我所做的,好吧 htmlspecialchars 反正。
    • 您提到在 $_GET 上运行 htmlspecialchars(),而不是在 $_SERVER['PHP_SELF'] 上。
    • 啊,我的意思是所有的 $_SERVER 值。我的错。
    【解决方案2】:

    数据是否存储在数据库中?下一个最可能的滥用形式是 SQL 注入攻击。将单引号转换为 ' 应该会变得更加困难。

    当然,这是解决问题的错误方法。但是当你的房子着火时,有时你不必担心一点点水损坏。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 1970-01-01
      • 2011-08-02
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 2016-11-05
      相关资源
      最近更新 更多