【问题标题】:How to check if *any* GET field is populated html php如何检查 *any* GET 字段是否已填充 html php
【发布时间】:2017-02-03 15:40:34
【问题描述】:

情况:试图阻止基于DOM的XSS

我的解决方案:检查是否填充了任何 GET 字段,因为大多数基于 DOM 的 XSS 都附加到 URL 的末尾,例如 https://example.com/page?<script>XSS</script>

问题:有什么方法可以检查“”之后是否有任何填写的内容?”,通常包含$_GET字段。

附加信息:我尝试$_GET['']."%" 试图找出那里的任何东西,但没有用。

【问题讨论】:

  • 你可以检查$_SERVER['QUERY_STRING'],注意如果你只是做var_dump($_GET);,你会因为标签而在浏览器中看不到任何东西。您必须在浏览器中查看源代码。

标签: php html url dom xss


【解决方案1】:

这就是我使用 http://domain.tld/page?<script>XSS</script> 时看到的内容。

$_GET 不是你说的空。

只需迭代每个 $_GET 属性,并确保在使用您的业务模型进行任何数据处理之前对其进行清理。

foreach ($_GET as $key => $attribute)
{
    // do something with $key or $attribute!
}

【讨论】:

    【解决方案2】:

    有几种可能的方式..例如:

    你可以遍历 $_GET

     foreach( $_GET as $key => $value) {
    
      // if any you can perform your check 
    
     }
    

    或者你可以检查

      if (isset($_GET) {
    
       count($_GET) ;   // the you know the number of elemns
     }
    

    【讨论】:

      【解决方案3】:

      您可以使用 $_GET。只需print_r($_GET); 之后的查询字符串中是否有任何内容?然后数据将在 $_GET 数组中。如果 $_GET 数组为空,则查询字符串中没有数据

      echo "<pre>";
      print_r($_GET); 
      echo "</pre>";
      

      转到http://php.net/manual/en/reserved.variables.get.php

      【讨论】:

        猜你喜欢
        • 2010-09-28
        • 1970-01-01
        • 2018-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-01
        相关资源
        最近更新 更多