这是我的设置:
> 1个认证服务器,在成功时发出JWT令牌
认证.
>多个API资源服务器,提供信息(当用户
经过验证).
现在我想构建我的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 });
解决方法
你走在正确的道路上! cookie应始终具有HttpOnly标志,设置此标志将阻止JavaScript环境(在Web浏览器中)访问cookie.这是防止浏览器中XSS攻击的最佳方法.
您还应该在生产中使用安全标志,以确保cookie仅通过HTTPS发送.
您还需要防止CSRF攻击.这通常通过在另一个cookie中设置一个值来完成,该值必须在每个请求中提供.
我在Stormpath工作,我们写了很多关于前端安全的信息.这两个帖子可能有助于理解所有方面:
Token Based Authentication for Single Page Apps (SPAs)
https://stormpath.com/blog/build-secure-user-interfaces-using-jwts/