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