【发布时间】:2016-01-04 03:39:18
【问题描述】:
我的一个客户有一个 PHP 脚本,一直莫名其妙地崩溃。经过数小时的研究,我确定如果您向任何 PHP 脚本发送包含“have t”的变量(通过 GET 或 POST),或者为 URL“+have+t”转义,它会使脚本崩溃并返回“403禁止错误”。为了测试它,我制作了一个包含全部内容的示例脚本:
<?php echo "works";
我把它(暂时)放在这里:http://primecarerefer.com/test/test.php
现在,如果您尝试向它发送一些数据,例如:http://primecarerefer.com/test/test.php?x=+having+x
失败了。最后一个字母可以是任何字母,它仍然会崩溃,但更改任何其他字母会使脚本加载正常。什么会导致这种情况以及如何解决?如果有人想尝试不同的组合,该链接现在可用。
PS - 我发现如果我连续多次收到 403 错误,服务器会阻止我 15 分钟。
【问题讨论】:
-
你怎么知道它使脚本崩溃 并且 403 不是故意返回的?
-
听起来与 PHP 无关。我将检查 Web 服务器的错误日志以及可能存在的任何 URL 重写/访问控制规则
-
没有优点? htaccess 会阻止特殊字符吗?
-
仅供参考,“have” 周围的字符似乎大多无关紧要。如果我要冒险猜测匹配的正则表达式,那将是
\bhaving\b.+ -
它只发生在 PHP 文件上吗?可以试试 HTML 文件吗?
标签: apache http-status-code-403