.netcore 安全(防攻击)
Posted 王哲66369
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.netcore 安全(防攻击)相关的知识,希望对你有一定的参考价值。
1. 反跨站请求伪造
攻击过程
攻击核心
- 用户已登录"好站点"
- 好站点通过Cookie存储和传递身份信息.
- 用户访问黑客攻击页面的站点"怀站点"
如何防御 - 不使用Cookie来存储传输身份信息,(Cookie不受我们控制,每次请求都会携带,可以是用jwt,而jwt的Token是同域名下的脚本才能发起,Token是同域名下运行脚本,从我们的Token的存储里面获取 如localStorage).
- 使用AntiforgeryToken机制来防御
如果使用Cookie存储和传递身份信息的话,可以用这种方式来防御跨站请求是比较推荐的方式. - 避免是用get作为业务请求的方法,使用get意味着公交脚本更容易构造
services.AddAntiforgery(option => {
option.HeaderName = "X-CSRF_TOKEN";
});
防跨站脚本攻击的策略是首先在要求http把我们定义的Header值带过过来,跟cookie的值对比,如果不一致认为是攻击.
攻击网站因为没法使用脚本设置header,也没法获取好站点的Cookie,因此没法构造一个header的值.
业务变更尽量使用post,如果是get 比如img标签
[ValidateAntiForgeryToken] 在方法上
[AutoValidateAntiForgeryToken] 在controller上,仅作用于Post.
2.防开放重定向攻击
攻击过程
攻击核心
- "好站点"的重定向未验证目标URL
- 用户访问"怀站点"
防范措施 - 使用LocalRedirect来处理重定向
- 验证重定向的域名是否合法
以上是关于.netcore 安全(防攻击)的主要内容,如果未能解决你的问题,请参考以下文章