【问题标题】:Empty php script fails when called with specific arguments使用特定参数调用空 php 脚本时失败
【发布时间】:2014-06-18 15:20:38
【问题描述】:

我有一个免费托管在 atspace.com 的网络服务器,其中包含一个名为 test_empty.php 的空(字面意思是空的)php 脚本。

当我用任何参数调用它时

myserver/test_empty.php?random_string

正如预期的那样,它加载了一个空白页面。

但在我这样称呼它的特定情况下:

myserver/test_empty.php?random_string_containing_varchar

它将我重定向到 404 页面。

在这里试试 - 第一个有效,另一个无效:

http://playerdatabase.atspace.eu/test_empty.php?anything_you_want_to_write_is_ok

http://playerdatabase.atspace.eu/test_empty.php?unless_it_contains_VARCHAR

由于我正在为不同的客户开发软件,因此我希望他们能够将 atspace 用作主机,我宁愿找不到针对此问题的自定义解决方法。

有什么想法吗?快把我逼疯了!

PS:我不知道这是怎么玩的,但这只发生在免费版的 atspace 中。如果我将脚本托管在付费帐户中,则不会发生这种情况。

我已经联系了他们的客户支持,但无济于事。

【问题讨论】:

  • 你可能有一个愚蠢的/愚蠢的/assinine 安全系统,它查找与 sql 相关的关键字并假设你正在执行 sql 注入攻击。你可以玩它并尝试其他的东西,比如dropselectinsert等等。
  • @Marc 你说得对,这是一个 sql 注入保护.. 我花了一整天的时间在这件事上..!但是为什么要防止“VARCHAR”?这不像我在调用 [link]playerdatabase.atspace.eu/test_empty.php?username=my_name;DROP TABLE users;
  • 因为人们不能被逼着修复他们的代码,所以他们贴上无用的创可贴,而忽略了浸透他们的鲜血。当然,也许它是一个共享服务器,他们假设某些用户真的很愚蠢,并且到处都有exec($_GET['killme'])之类的代码。

标签: php forms field http-status-code-404 varchar


【解决方案1】:

@Marc 是的,就是这样 :)

他们的支持团队让我知道,这一切都是由于一个全能的 MOD_Security 文件中的黑名单字符串列表,不允许任何人触摸;)

我仍然不明白他们对“VARCHAR”的具体问题是什么 - 其他变量类型被认为是安全的:P

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-18
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2020-11-04
    • 2011-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多