我必须实现一个网站(MVC4 /单页应用程序+淘汰赛+ Web.API),我一直在阅读大量的文章和论坛,但我仍然无法弄清楚安全/身份验证和保护登录页面和Web.API时前进的方法。
该网站将完全在SSL下运行。一旦用户第一次登录,他/她将收到一封电子邮件,其中包含确认注册过程的链接。密码和“salt”值将以加密方式存储在数据库中,不可能将密码解密回来。该API将仅用于此应用程序。
我有一些问题需要回答才能进一步:
谢谢。
答案 0 :(得分:4)
这个问题很可能因为过于本地化而被关闭。即便如此,我还会提出几点建议。这不是一个答案,但评论部分对此来说太小了。
没有人说SPA需要全部是静态HTML,有数据绑定,它也可能是你的MVC网站返回部分被加载(我过去做过的事情)。至于使用HTML和JS(特别是Durandal),有一些方法可以保护客户端应用程序。最终,锁定服务器上的数据,并在收到401/403时将客户端路由到登录屏幕。
如果您更关注XSS或请求伪造,那么即使只使用HTML和JS,也有办法防止这种情况(尽管不像使用MVC删除防伪标记那么容易)。
我的两分钱。
答案 1 :(得分:3)
如果您执行“直接”身份验证 - 这意味着您可以直接验证密码 - 您可以使用基本身份验证。
此外,您可以考虑使用会话令牌来删除客户端上的密码: http://leastprivilege.com/2012/06/19/session-token-support-for-asp-net-web-api/