1、在Html表单里面使用了@Html.AntiForgeryToken()就可以阻止CSRF攻击。

2、相应的我们要在Controller中也要加入[ValidateAntiForgeryToken]过滤特性。该特性表示检测服务器请求是否被篡改。注意:该特性只能用于post请求,get请求无效。

3、至于JS,我们的项目中引用的是<script src="@Url.Content("~/Content/js/jqueryToken-1.4.2.js")" type="text/JavaScript"></script>

在JS时要使用: $.ajaxAntiForgery才行,
如:
 $.ajaxAntiForgery({
            type: "post",
            data: { GroupName: $("#GroupName").val(), GroupPhones: $("#GroupPhones").val() },
            dataType: "json",
            url: "/Event/Mass/AddGroup",
            success: function (data) {
                if (data) {

alert("添加成功 ");
                    $.unblockUI();
                }
                else {
                    alert("添加失败 ");
                }
         }
 })

注:对数据进行增删改时要防止csrf攻击!

另外一种方式

public class HomeController : Controller
{public ActionResult Index(){return View();}[HttpPost][ValidateAntiForgeryToken]public ActionResult Index(string someValue){return Json(new { someValue = someValue });}
}

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "__AjaxAntiForgeryForm" }))
{@Html.AntiForgeryToken()
}<div id="myDiv" data-url="@Url.Action("Index", "Home")">Click me to send an AJAX request to a controller actiondecorated with the [ValidateAntiForgeryToken] attribute
</div><script type="text/javascript">$('#myDiv').submit(function () {var form = $('#__AjaxAntiForgeryForm');var token = $('input[name="__RequestVerificationToken"]', form).val();$.ajax({url: $(this).data('url'),type: 'POST',data: { __RequestVerificationToken: token, someValue: 'some value' },success: function (result) {alert(result.someValue);}});return false;});
</script>

转载于:https://www.cnblogs.com/l1pe1/p/6030841.html

MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交相关推荐

  1. 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击

    跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...

  2. PHP预防XSS攻击,ajax跨域攻击的方法

    对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,mysql_real_escape_string,htmlentities,htmlsp ...

  3. xss过滤器无法处理ajax请求_thunkPHP 预防XSS攻击

    比如在有人恶意在你的输入框中或文本域中输入<script>标签,如果不做处理的话,输入框中的<script>会保存到我们数据库中,等到将这个数据拿出来展示的时候,就等于将这个内 ...

  4. WEB三大攻击之—XSS攻击与防护

    From:https://www.daguanren.cc/post/xss-introduction.html XSS的背景与介绍 背景 随着互联网的发展,网站经历由单纯的只读模式到web2.0兴起 ...

  5. 首次成功实施 XSS 攻击,盗取目标网站大量 VIP 帐号

    前言 之前做网站时有做代码防御 XSS(Cross Site Script) 攻击,但是却只处于了解的阶段,并不知道其中具体的原理,更别说使用了.最近有朋友要求我帮助他 Hack 一个网站,达到一定的 ...

  6. 什么是XSS攻击XSS攻击应用场景

    XSS攻击 什么是XSS攻击手段 XSS攻击使用Javascript脚本注入进行攻击 例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端. < ...

  7. 服务器安全:浏览器同源策略与跨域请求、XSS攻击原理及防御策略、如何防御CSRF攻击

    主要包括 浏览器同源策略与跨域请求 XSS攻击原理及防御策略 如何使用SpringSecurity防御CSRF攻击 CC/DDOS攻击与流量攻击 什么是SSL TLS HTTPS? 一.浏览器的同源策 ...

  8. 网站常见漏洞-- XSS攻击

    跨站攻击,即Cross Site Script Execution(通常简写为XSS,因为CSS与层叠样式表同名,故改为XSS) 是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用 ...

  9. 了解与防御XSS攻击

    一. XSS是什么 XSS攻击全称跨站脚本攻击(Cross Site Scripting),是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写 ...

最新文章

  1. oracle构造过程实例
  2. 项目中用到的语音识别方案 硬件/软件相关介绍
  3. Java线程:新特征-有返回值的线程(转)
  4. 二阶自回归过程matlab,时间序列分析:二阶自回归过程
  5. Vue+ECharts的小示例
  6. tolowercase_JavaScript中的String toLowerCase()方法与示例
  7. java runtime 清屏_【图片】请问java编写中如何做到清屏啊。。。_java吧_百度贴吧...
  8. 团队个人每天详细计划汇总
  9. opencv-python中文文档
  10. Excel表格如何根据身份证号计算年龄
  11. 康佳电视系统升级服务器地址,康佳电视各平台升级方法及强制刷机汇总
  12. Python 将tif文件分割成多个小tif
  13. 厦大计算机考研学硕,2021厦大计算机考研招生、复试、书目专业大解析!
  14. java如何使截取字符串_java中如何截取字符串中的指定一部分
  15. Windows Mobil中解决日期显示不正常的方法
  16. OpenCvSharp 棋盘格标定助手
  17. 企业数字化转型的步骤是什么?
  18. Java学习体系(骨灰级详细)
  19. docker+nginx搭建私有云笔记leanote
  20. 关于TTS SpeechVoiceSpeakFlags几个值的中文意思?

热门文章

  1. vue 非es6 写法怎么按须加载_Vue源码必学指南:flow(语法检查)以及rollup(模板打包)...
  2. OpenCV_02 图像的基本操作:图像IO+绘制图形+像素点+属性+图像通道+色彩空间的改变
  3. git gui怎么拉取项目代码_Git可视化极简易教程 — Git GUI使用方法
  4. Web框架——Flask系列之Flask-SQLAlchemy安装与使用 定义数据模型(八)
  5. LeetCode 1793. 好子数组的最大分数(单调栈)
  6. LeetCode 1382. 将二叉搜索树变平衡(中序遍历+二分递归)
  7. LintCode 1689. k求和III(递归)
  8. blue html中转换,BlueFox Free PDF to HTML Converter(PDF文件转换软件)
  9. 就业技术书文件表格_就业申请书
  10. 操作系统是计算机的什么管理者,操作系统是计算机资源的管理者