1
5
最重要的是, 符合HTTP规范。 返回403代替404不是一件好事。把404换成403也许没问题(或者不是一个大错误),但我只是 让软件说出真相 . 如果用户只知道一个主题的ID,那么它就不多了。他可以尝试 定时攻击 以确定此主题是否存在。 |
2
4
我会转到一个307重定向到nosuchpageornopermissions.html,在那里你很好地告诉用户他们输入了错误的URL或者没有权限。 这不会破坏合规性,也不会发出错误的消息。 如果你非常偏执,你可以在返回重定向之前随机等待,这样时间分析就更难了。 至于这里所有的人,问为什么要保护目录,试试这些例子。 1。用户名假设我们是一个ISP,我们会给每个用户一个网页,网址为www.isp.example/home/username,电子邮件地址为username@isp.example。如果攻击者进行字典攻击,向www.isp.example/home/[random]发送请求,并可以判断这是否是有效的用户名,那么我们现在可以生成一个有效电子邮件地址列表,将其出售给坏人。 2。什么文件夹鲍勃正在竞选公职,他在海报上开了一个账户,用他的网站存储个人信息。但他通过将其设为私人文件夹来保护它,他的公共页面位于: www.example.com/bob,他的秘密文件夹是www.example.com/bob/icecream。他已将此标记为私有,因此任何请求的人都可以获得403。然而,www.example.com/bob/cake返回404,因为bobs的秘密是冰淇淋而不是蛋糕。 爱丽丝,记者在Bobs网站上做了一个字典攻击
现在艾丽丝知道了鲍布的秘密,并且可以把他当成一个吃冰淇淋的人。 |
3
3
我认为您应该发送307(临时重定向)请求,请求“/adminnotes/user”将非特权客户端重定向到“/adminnotes/”。因此客户端请求“/adminnotes/”,因此您可以发送回403,因为它是禁止的。 这样,您的应用程序就可以保持HTTP兼容,而非特权用户对受保护数据不会了解太多。 |
4
2
什么“隐私”是通过向用户隐藏特定线程的存在来保护的? 我想说,在他们无法访问的线程上返回403或404是可以的。在不存在的线程上返回403是 坏的 想法。 |
5
1
世界上没有一个网站按照你的建议行事,因此通过这个例子,我们看到,最好遵循标准,当资源不存在时返回404,当资源被禁止时返回403。 |
6
1
我不明白你为什么担心URL上的隐私问题。在stackoverflow的情况下,可以在questionID号之后放置任何文本。例如, Return "correct" error code, or protect privacy? 还是回到这个问题上。 |
7
1
别忘了404在技术上也会泄露信息。例如,您可以告诉谁没有管理员笔记。根据具体情况,这可能和指示资源确实存在一样糟糕。 在我看来,错误不应该说谎。如果给出404,那么资源不存在的情况应该总是如此。 如果您处理的是敏感信息,那么您总是可以说用户没有该资源的权限。这不一定要求资源存在。客户机甚至可能没有权限知道资源是否存在。因此,您需要为/adminnotes/的任何组合提供一个拒绝权限的错误。 也就是说,官方规范似乎不同意,下面是官方的RFC对错误的看法。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html : 10.4.4 403禁止 服务器理解请求,但拒绝完成请求。授权没有帮助,请求不应重复。如果请求方法不是head,并且服务器希望公开未满足请求的原因,那么它应该描述实体中拒绝的原因。如果服务器不希望将此信息提供给客户机,则可以使用状态代码404(未找到)。 10.4.5 404未找到 服务器未找到任何与请求URI匹配的内容。没有说明这种情况是暂时的还是永久的。如果服务器通过一些内部可配置的机制知道旧资源永久不可用且没有转发地址,则应使用410(消失)状态代码。当服务器不希望确切地揭示请求被拒绝的原因,或者没有其他响应适用时,通常使用此状态代码。 我不是专家,但我认为在资源可能存在的时候给出一个“找不到”是愚蠢的。我更喜欢“禁止”,没有保证资源存在的保证,这意味着您需要以某种方式进行身份验证才能找到答案。 |
8
0
假设您在检测到用户没有正确的访问权限时返回了“找不到页面”错误。一个恶意的黑客很快就会发现你会把这个放在拒绝访问的地方。 但是,那些错误输入网址或使用错误登录等的真正用户会感到困惑,他们会不厌其烦地解释和发布注释,向客户、TAC等解释您的立场,以换取什么? 意图是好的,但我担心你提出的这项政策可能无法达到你想要的效果。 |
9
0
我的建议是:
|
Farid · 限制django每个客户的访问 2 年前 |
josegp · 在Nmap中-p-tag是什么意思 2 年前 |
kramer65 · 如何根据网站用户在S3上添加非公共网站文件? 6 年前 |
derf26 · 如何阻止React Web包包含包中的脚本。json 6 年前 |
user8663960 · 最好也是最简单的方法是保护登录表单的安全 6 年前 |