我们使用Ajax访问请求的时候,攻击者可能盗用了用户身份,以用户合法身份发送恶意请求。

具体预防措施,

1、在Html表单里面使用@Html.AntiForgeryToken(),这玩意会生成一对加密的字符串,分别存放在Cookies 和 input 中。

  可以获取到,var token = $('@Html.AntiForgeryToken()').val();

2、在Controller中加入[ValidateAntiForgeryToken]过滤特性。

3、在JS中使用: $.ajaxAntiForgery才行,或者$.ajax中添加Header属性,或者在项目中引用<script src="@Url.Content("~/Content/js/jqueryToken-1.4.2.js")" type="text/javascript"></script>

var headers = {};
headers["__RequestVerificationToken"] = token;
$.ajax({
                type: 'POST',
                url: '/Home/Index',
                cache: false,
                headers: headers,
                data: { Name: "yangwen", Age: "1" },
                success: function (data) {
                    alert(data)
                },
                error: function () {
                    alert("Error")
                }
            });
View Code

相关文章:

  • 2021-06-15
  • 2022-01-25
  • 2022-12-23
  • 2021-09-04
  • 2021-06-27
猜你喜欢
  • 2021-08-21
  • 2022-12-23
  • 2022-02-15
  • 2021-10-31
  • 2021-09-23
相关资源
相似解决方案