【问题标题】:How to avoid XSS Attack or Sanitize the $_GET's KEY parameter via PHP如何避免 XSS 攻击或通过 PHP 清理 $_GET 的 KEY 参数
【发布时间】:2014-02-14 08:01:20
【问题描述】:

我刚刚测试了下面的一个链接,会对IE11进行XXS攻击。

http://example.net/test/?"*alert(1)*"

我找到了很多清理 url 参数的方法。 大多数解决方案都是清理 $_GET 的值,而不是像这个 url 这样的 $_GET 的键 Sanitize $_GET parameters to avoid XSS and other attacks

但是当我 print_r 我的 $_GET 是 Array ( ["*alert(1)*"] => ) 时,我提供的上面的 url

那么我能知道如何避免这种攻击吗?他们使用 $_GET 的密钥而不是值进行攻击。

非常感谢。

【问题讨论】:

  • 有多种方法可以做到这一点,但我建议阅读 PHP filter_var uk1.php.net/manual/en/function.filter-var.php。它提供了一种简单的方法来完成您的工作
  • 与key或value无关。归结为您回显未经处理的 HTML。请参阅上面的阅读内容,也许也有一段时间在 OWASP 网站上。

标签: php get xss


【解决方案1】:

XSS 攻击在打印恶意代码时发生,但代码应根据 HTML 和 JavaScript 规则可执行。例如,如果没有正确写入,打印*alert(1)* 将不会发出任何警报(不会执行)。然而,

<script>alert(1)</script>

<div onclick="alert(1);"...>

将被执行。

更多详情可以查看XSS (Cross Site Scripting) Prevention Cheat Sheet

【讨论】:

    【解决方案2】:

    创建了我的解决方案,我需要重写 HTACESS 以从 http 调用重定向到 https。这样在 https 环境中,当他们输入他们的 url 时,它将防止 xss 攻击。

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2018-12-23
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 2022-11-23
      相关资源
      最近更新 更多