问题描述
我似乎找不到这个问题的答案。 至少,不如我期望的那样“可靠”(请参阅MVC示例中的文章结尾)。
这是关于解决Angular9-.NET Framework 4.x webapi应用程序中的XSRF漏洞。
这里https://angular.io/guide/http#security-xsrf-protection我读过这篇文章:
在执行HTTP请求时,拦截器默认从XSRF-TOKEN从cookie中读取令牌,并将其设置为HTTP标头X-XSRF-TOKEN。由于只有在您的域上运行的代码才能读取Cookie,因此后端可以确定HTTP请求来自您的客户端应用程序而不是攻击者。
默认情况下,拦截器会在所有更改请求(例如POST)上将此标头发送到相对URL,但不会在GET / HEAD请求或具有绝对URL的请求上发送此标头。
为了利用此优势,您的服务器需要在页面加载或第一个GET请求上的名为XSRF-TOKEN的JavaScript可读会话cookie中设置令牌。在后续请求中,服务器可以验证Cookie是否与X-XSRF-TOKEN HTTP标头匹配,因此,请确保只有在您的域上运行的代码才可以发送请求。令牌对于每个用户必须是唯一的,并且必须可由服务器验证;这样可以防止客户端伪造自己的令牌。将令牌设置为带有盐的站点身份验证Cookie的摘要,以增强安全性。
这意味着我将在.NET后端中生成一些令牌,为用户记住它(并拥有粘性服务器?),将该令牌添加到Cookie中,然后最后验证Angular从中添加的标头我的Cookie。
如果那样的话,没关系,但是感觉有点“摇摇欲坠-修补-修补”(希望那里有不错的Google翻译)。
几年前,在ASP.NET MVC世界中,它将在Razor模板中添加一行代码,并在操作中添加1个属性,仅此而已。如果您知道我的意思,那感觉就更扎实了。那就是我一开始的意思,而不是我期望的那样“坚实”。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)