问题背景:由于公司需要整改的老系统的漏洞检查,而系统使用的是.Net 4.6.1的框架,无法使用最新的.Net Core官网的文档解决。
解决方法:网上查了很多资料,有用 Referer 过滤器全局过滤请求头,也有用 http请求都带token中验证。最先用了Referer全局过滤伪造的跨域请求域名,发现还是无法通过CSRF检测。最后使用了服务端返回Token给到form前端,后端对Post请求进行校验,发现可以解决问题。
前端代码:文章来源:https://www.toymoban.com/news/detail-802971.html
@using (Html.BeginForm("Index", "Search", FormMethod.Post, new { id = "SearchForm", name = "SearchForm" }))
{
@Html.AntiForgeryToken()
}
后端代码:文章来源地址https://www.toymoban.com/news/detail-802971.html
public class SearchController
{
[Post]
[ValidateAntiForgeryToken]
public ActionResult Index()
{
return view();
}
}
到了这里,关于.Net CSRF 跨站点请求伪造漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!