这是我的设置:
现在我想构建我的ASP.NET MVC前端。是否可以获取我在认证后收到的令牌,并将其放入cookie中,以便我可以使用我需要进行的每个安全呼叫来访问它?我使用RestSharp DLL进行我的http调用。如果它有安全漏洞,那么我应该在哪里存储我的令牌?
我会将此代码用于cookie:
System.Web.HttpContext.Current.Response.Cookies.Add(new System.Web.HttpCookie("Token")
{
Value = token.access_token,
HttpOnly = true
});
答案 0 :(得分:11)
你走在正确的道路上! cookie应始终具有HttpOnly
标志,设置此标志将阻止JavaScript环境(在Web浏览器中)访问cookie。这是在浏览器中防止XSS攻击的最佳方法。
您还应该在生产中使用Secure
标记,以确保Cookie仅通过HTTPS发送。
您还需要阻止CSRF次攻击。这通常通过在另一个cookie中设置一个值来完成,该值必须在每个请求中提供。
我在Stormpath工作,我们已经写了很多关于前端安全性的信息。这两篇文章可能有助于理解所有方面:
Token Based Authentication for Single Page Apps (SPAs)
https://stormpath.com/blog/build-secure-user-interfaces-using-jwts/
答案 1 :(得分:0)
您是否正在制作自己的JWT?
如果是,您应该考虑使用基于非对称加密的签名算法,例如“RS256”或“RS512” - 这样您就可以在不共享私密的情况下验证客户端应用程序中的声明。
你真的需要将JWT传递给Cookie吗?
在Cookie中引入随机ID可能更安全,Cookie会引用JWT访问令牌,并在为您的网络应用程序提供服务的服务器上执行解引用魔术。