用于访问受限WEB资源的HTTP 403或404?

我的问题与此返回“正确”错误代码或保护隐私相似,但我想听到一些不同的答案。

我们有WEB网站,其中大部分页面可能未被登录用户访问。 但是,如果未登录,用户尝试访问需要授权的资源(页面)(用户必须具有FooRole角色),我们会自动将他重定向到登录页面,并在提供正确的凭证后返回受限资源。 如果用户提供了正确的证书,什么WEB站点应该做,但他的访问权限不够(他有BarRole但不是FooRole)?

在当前实现中,我们返回HTTP 403响应(禁止)。 但是一些开发人员认为必须返回404代码,因为它提供了更好的安全性 - 用户不应区分不存在和不可访问的资源 。 从安全角度来说,最好返回404,但在描述的情况下,用户被重定向到登录页面,并且该行为“暗示”这样的页面存在,因此它不是很合乎逻辑地返回404(这是我的想法)。 如果用户已被授权并尝试访问受限资源(直接修改URL),那么,它可能在逻辑上返回404错误。

也许这样的“自动重定向到登录”功能不好? 你能否告诉我在这种情况下什么行为更“标准/好/用户友好/无故障”?

谢谢!


我相信它更适合返回一个准确的403错误代码来登录失败。

至于你的问题模糊了什么文件实际存在的一般“安全通过默默无闻”(流行语)被认为是一个非常糟糕的安全模型,真正应该没有任何好处,用户知道这些URL,如果他们没有访问他们无论如何(如果他们打破访问控制,我认为有一个相当简单的方法来找到这些文件的URL)。

如果对文件名进行模糊处理很重要,但是我建议为未经身份验证的用户返回403文件夹中的任何文件(Existing或not)(基本上,您拒绝他们访问文件夹中的内容,因此错误代码似乎是合法的对我来说)。 我可能会推荐通过一个CustomErrors处理程序来完成这个操作,它可以区分你是否登录,然后再决定要告诉你多少(这样你仍然可以为被认证的人保留准确的404错误)或者一个HttpModule捕获异常404为已认证的用户和未认证的用户引发并呈现不同的结果。

链接地址: http://www.djcxy.com/p/48345.html

上一篇: Http 403 or 404 for accessing restricted WEB resource?

下一篇: Redirecting to login page when user is not logged in