【发布时间】:2010-12-18 21:44:01
【问题描述】:
我的问题与Return “correct” error code, or protect privacy? 非常相似,但我想听听一些不同的答案。
我们有 WEB 站点,其中大部分页面可能由未登录的用户访问。但是,当未登录用户尝试访问需要授权的资源(页面)时(用户必须具有 FooRole 角色),我们会自动将他重定向到登录页面,并在提供正确的凭据后返回到受限资源。如果用户提供了正确的凭据,但他的访问权限恰好不够(他有 BarRole 但没有 FooRole),该网站应该做什么?
在当前实现中,我们返回 HTTP 403 响应(禁止)。但一些开发人员认为必须返回 404 代码,因为它提供了更好的安全性 - 用户不应区分不存在和不可访问的资源。从安全的角度来看,返回 404 可能更好,但在所描述的情况下,用户被重定向到登录页面,并且该行为 “暗示”该页面存在,因此返回 404 不是很合乎逻辑(它是我的想法)。如果用户已经被授权并尝试访问受限资源(直接修改 URL),那么,逻辑上可能会返回 404 错误。
也许这种“自动重定向到登录”功能不好?你能建议我在这种情况下哪种行为更“标准/良好/用户友好/无黑客”?
谢谢!
【问题讨论】:
标签: asp.net asp.net-mvc http-status-code-404 security http-status-code-403