MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于《重启人工智能》11条建议的思考

来源&#xff1a;人机与认知实验室马库斯和欧内斯特戴维斯在他们的新书《重启人工智能》(Rebooting AI)中主张开辟一条新的前进道路。他们相信&#xff0c;我们离获得这样的通用智能还差得很远&#xff0c;但他们也相信&#xff0c;我们最终能够做到这一点。We will also sugge…

cmd中加载java源文件_如何在cmd中编译和运行java源文件

如何在cmd中编译和运行java源文件首先写一个名为HelloWorld.java的java源文件&#xff0c;存储在如C:/java/src的地址&#xff0c;我们再假设待会要存储的位置是C:/java/bin&#xff0c;则我们做一下工作首先&#xff0c;进入cmd环境&#xff0c;输入”C&#xff1a;”回车进入…

python getattr和getattribute_详解Python中 __get__和__getattr__和__getattribute__的区别

引子假设我们有个类A,其中a是A的实例a.x时发生了什么?属性的lookup顺序如下:如果重载了__getattribute__,则调用.a.__dict__, 实例中是不允许有descriptor的,所以不会遇到descriptorA.__dict__, 也即a.__class__.__dict__ .如果遇到了descriptor,优先调用descriptor.沿着继承链…

Hbase随笔

大数据时代的数据量是超大规模的&#xff0c;传统的关系数据库已经很难存储和管理这些数据了&#xff0c;为了存储海量数据&#xff0c;我们有了HDFS&#xff0c;它可以把成千上万台服务器上的硬盘聚集成一块超级大的硬盘&#xff0c;为了让这些数据产生价值&#xff0c;我们有…

《2019中国硬科技发展白皮书》发布,中美硬科技创新指数PK

来源&#xff1a;创新研究10月30日&#xff0c;在2019全球硬科技创新大会上&#xff0c;《2019中国硬科技发展白皮书》正式发布。白皮书从综述篇、科技篇、产业篇和城市篇四个部分&#xff0c;系统论述了发展硬科技的时代背景、硬科技的各领域突破和进展情况、国内各城市硬科技…

JAVA编写提示用户输入投资额_java(计算银行存款总额(要求输入错误时,提示重新输入))...

【任务一】&#xff1a;编写一个简单 Java 程序&#xff0c;计算银行年存款的本息。 要求&#xff1a;程序运行后要求用户输入存款本金、年利率和存款年限&#xff0c;最后程序计算并输出相应年限后存款的金额。相应 的计算公式为&#xff1a;存款总额本金 * (1 利率)存款年限…

这一次,脑机接口可以实时读取人类脑中画面了?

来源&#xff1a;机器之心由俄罗斯脑机接口公司 Neurobotics、莫斯科物理技术学院&#xff08;MIPT&#xff09;研发的一种全新脑机接口算法最近被公之于众&#xff0c;它可以利用人工神经网络和脑电图将人类大脑中的图像实时显示在计算机屏幕上。而且&#xff0c;与马斯克脑机…

python访问网页变量_Python 如何访问外围作用域中的变量

在表达式中引用变量时&#xff0c;Python 会按照如下的顺序遍历各个作用域&#xff0c;寻找该变量&#xff1a;当前函数作用域任何外围作用域(比如包含当前函数的其他函数)global 作用域&#xff0c;即代码所在的模块的作用域如果上述作用域内都找不到变量&#xff0c;就会报 N…

什么时候使用CountDownLatch

正如每个Java文档所描述的那样&#xff0c;CountDownLatch是一个同步工具类&#xff0c;它允许一个或多个线程一直等待&#xff0c;直到其他线程的操作执行完后再执行。在Java并发中&#xff0c;countdownlatch的概念是一个常见的面试题&#xff0c;所以一定要确保你很好的理解…

java父包引用_父类引用指向子类对象(java)

从对象的内存角度来理解试试.假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,它里面的变量需要占用0.5M内存.现在通过代码来看看内存的分配情况:Father f new Father();//系统将分配1M内存.Son s new Son();//系统将分配1.5M内存!因为子类中有一个隐…

科技角逐:中美的人工智能布局

来源&#xff1a;人机与认知实验室2017年以来&#xff0c;与人工智能相关的国家级战略密集出台&#xff0c;社会关于人工智能的大讨论激烈展开&#xff0c;各国政府关于人工智能发展的思路也逐渐清晰。中美作为两大科技强国&#xff0c;都在人工智能领域投入巨大&#xff0c;有…

python中scale_Python中的Log-scale mathplotlib?

我试图拟合对数正态曲线&#xff0c;但我不知道如何将y(和x轴)更改为对数刻度&#xff1f;我尝试使用logspace而不是linspace&#xff0c;但是遇到了一个错误OverflowError: cannot convert float infinity to integer我试过了&#xff1a;^{pr2}$但这似乎也不管用。我附上了我…

akka kafka java_当使用websocket连接时,使用akka-stream-kafka从kafka主题获取最后一条消息...

使用David van Geest非常巧妙地描述的方法&#xff0c;我能够避免在客户端连接时获取任何上游数据here归结为在Consumer上有一个BroadcastHub&#xff1a;val liveSource Consumer.plainSource(consumerSettings, Subscriptions.topics(topic1, topic2)).map(kafkaObject >…

android px,dp,sp大小转换工具

package com.voole.playerlib.util;import android.content.Context;/*** Android大小单位转换工具类<br/>* * float scale context.getResources().getDisplayMetrics().density;*/ public class DisplayUtil {/*** 将px值转换为dip或dp值&#xff0c;保证尺寸大小不变…

工业物联网的应用领域与方向

&#xff08;图片来自pixabay&#xff09;来源&#xff1a;OFweek工控从一定程度上&#xff0c;物联网可以说是个“旧瓶装新酒”的概念&#xff0c;提出物联网——IoT&#xff08;Internet of things&#xff09;这个概念的确是一种创新&#xff0c;但是要把这个创新与传统的M2…

mysql count里面能加条件吗_select count(1) 和 count(*),哪个性能更好?

相信很多小伙伴都想了解 count(1) 和 count(*) 的性能问题 &#xff0c;今天给大家做一下测试。声明&#xff1a;本文使用MySql数据库&#xff0c;数据库表里面有100万条数据。先测试 count(*)可以看出&#xff0c;count(*) 用时间差不多15s.再测试 count(1)看到这个数据&#…

PDA 收银系统PDA手持打印扫描枪 销售开单 收银 扫描打印一体机

在零售方面也有很好的应用。如在一些高端品牌零售店,营业员可以随身导购&#xff0c;一站式完成了商品销售和收银&#xff0c;很是受消费者追捧&#xff0c;符合了企业对客户体验以及行业领先的追求。 PDA收银系统是一款多功能可以取代专业收银机的收银系统&#xff0c;适合各种…

如何获取投票提交地址_简单实用 | 2019全国医院擂台赛投票攻略(县域版)

作者&#xff1a;用户大当家2019改善医疗服务行动全国医院擂台赛案例征集环节结束。截止8月15日24时&#xff0c;城市组提交案例2196个&#xff0c;县域组提交案例1087个&#xff0c;总计3283个案例&#xff0c;数量再度创纪录。首先为积极改善医疗服务的您点赞。接下来&#x…

java 16 binary_【图片】【困扰】java(tm) platform se binary 已停止工作该如何是好【minecraft吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Completely ignored arguments: [--nativeLauncherVersion, 307][18:26:56] [Client thread/INFO]: Setting user: XXX[18:26:58] [Client thread/WARN]: Skipping bad option: lastServer:[18:26:58] [Client thread/INFO]: LWJGL…

菲尔兹奖数学家丘成桐:人工智能中的数学理论尚无很大突破

来源&#xff1a;机器人10月17日&#xff0c;在2019中关村论坛上&#xff0c;菲尔兹奖首位华人获得者、美国国家科学院院士、哈佛大学教授丘成桐发表主旨演讲。他呼吁国家应重视基础科学和数学的发展。一个国家的强大和长治久安&#xff0c;离不开强大的基础科学&#xff0c;没…