在asp.net mvc 3中开箱即用的表单身份验证有多安全?

时间:2012-01-20 22:22:20

标签: asp.net asp.net-mvc-3 security

如果我从登录框中获取通用的MVC3骨架网站并托管它,登录后面的内容有多安全?是否有已知的Microsoft表单身份验证漏洞?我可以相信身份验证过程和[Authorize]保护权重吗?

1 个答案:

答案 0 :(得分:3)

ASP.NET Forms身份验证是一种经过验证的技术,因此Authorize属性是可以的。但是既然你问过为你生成的骨架ASP.NET MVC应用程序,那么它就有缺陷。例如,帐户控制器上的LogOn方法未使用[RequireHttps]属性进行修饰,这意味着您可以通过非安全通道访问它。验证方法中存在另一个缺陷,即未验证ReturnUrl参数实际上是属于同一域的URL。这已在ASP.NET MVC 3工具更新中修复。

web.config中的身份验证部分还存在其他缺陷:

<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

此处requireSSL属性未设置为true,这意味着身份验证Cookie可以通过非安全通道传输。此外,slidingExpiration属性未设置为false,这意味着cookie将在每个请求时自动续订。我建议你看一下following guide