ASP.NET MVC Web API身份验证令牌安全问题

时间:2016-02-11 09:06:38

标签: api security asp.net-web-api2 asp.net-mvc-5.2

我正在使用Web API开发一个asp.net mvc项目。 Web API将由网站,移动应用和第三方使用。现在,某些API将仅在主页上调用而不进行任何登录,并且仅在登录后才会调用相同的API。

现在,考虑到我的网站场景,我从AngularJs调用了API。我们调用了一个api,它将在session_start上生成一个令牌。然后从NG我们调用了一个mvc控制器方法,它将简单地获取该令牌,然后令牌将在所有请求中的HTTP-Header中传递。

在API方面,我们获取令牌,解密并显示结果。

问题是,当我看到谷歌浏览器的网络选项卡(按F12)时,我可以轻松地在标题中看到API调用甚至令牌。我觉得安全漏洞。对于Open API,我们考虑过一些到期时间和请求计数。但是一些API会很敏感,比如在数据库中添加数据(POST API,基于作为参数传递的数据),并且它们也可供访客用户使用。我们不希望有人滥用它并做有害的事情。

我们如何在这种情况下实现最大安全性?什么是理想的安全流程?

1 个答案:

答案 0 :(得分:0)

进一步解释Marco Sandrini的评论......

  

安全性不依赖于隐藏API结构(方法名称,数据格式等),而是依赖于授权客户端访问这些API,这是您的令牌应该执行的操作。换句话说,如果您的令牌是加密声音(不能被欺骗或伪造),您的连接受到保护(没有人可以拦截您的令牌)并且您的后端正确地验证并授权您的客户,您应该没事。

令牌不应受到重播攻击。服务器应该已经期望对后续请求使用不同的令牌排列,并且您不应该知道如何通过读取令牌来生成令牌。

正确的SSL / TLS将保护连接内容免受窥探。如果您的访客用户可以在他们的Chrome网络标签中看到其他敏感信息,那么您应该担心,因为您的实施策略出了问题。