【问题标题】:Why would "/id" as a HTTP GET parameter would be a security breach?为什么将“/id”作为 HTTP GET 参数会是安全漏洞?
【发布时间】:2010-12-03 01:10:02
【问题描述】:

在尝试使用 Google 调试我的 openid 实现时,它一直返回 Apache 406 错误,最后我发现我的托管公司不允许将包含“/id”的字符串作为 GET 参数传递(类似于“示例.php?anyattribute=%2Fid" 一旦 URL 编码)。

这很烦人,因为 Google openid 端点包含这个死亡词“/id”(https://google.com/accounts/o8/id),因此每次我使用 Google 登录时,我的应用都会返回 406 错误。我联系了我的托管公司,他们告诉我,出于安全考虑,该服务已被停用。

当然,我可以改用 POST。但是有没有人知道为什么这会导致安全问题???

【问题讨论】:

  • 为什么不再次联系您的托管公司并索取有关该问题的更多详细信息?
  • 您是否要求托管公司解释为什么他们认为这是一个问题?如果他们无法向您解释,那么他们不知道他们为什么要这样做,这表明他们可能不知道他们在更一般意义上所做的事情;在这种情况下,您可能会考虑跳槽到另一家公司。
  • 嗯,他们只是回答说他们使用modsecurity.org 作为他们的安全模块,我应该向它的文档报告。因此,我想任何拥有使用此模块的托管公司的人都可能发生这种情况。我不确定我是否与技术人员交谈过,但无论如何,我想我现在得到了答案,并会要求他们禁用此特定功能。谢谢大家!

标签: apache hosting web-hosting security


【解决方案1】:

URL 中的简单 ID 可能存在安全问题的一个原因是用户可以看到他们的 ID,然后输入另一个 ID,例如如果它是一个整数,他们可能会选择下一个整数,并可能看到其他用户信息,如果它不受保护。

【讨论】:

  • 你们的回答都是一样的,所以我想我可以合理地要求他们禁用此特定功能...非常感谢!!
【解决方案2】:

不可能,你的主人太愚蠢了。字符串/id 没有什么神奇之处。

有时人们会用字符串/id 做一些愚蠢的事情,比如假设没有人会猜到接下来会发生什么,所以example.com/mysensitivedata/id/3/ 会显示我的数据,因为我的用户有id 3,并且作为偷偷摸摸的类型,我想知道如果我导航到 example.com/mysensitivedata/id/4/ 会发生什么,而您的网站盲目地让我通过查看其他人的东西。

如果这种攻击破坏了您的网站,那么您的主机再多的溺爱也无济于事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    相关资源
    最近更新 更多