防范CSRF(一)
CSRF是跨网站伪造请求的缩写。大致的攻击流程是,黑客获得浏览器向服务器发送的请求,然后对请求进行修改,让服务器执行指定的操作。
防范方式可以使用微软提供的解决方案。
View放置Html.AntiForgeryToken();后端在需要接收验证的方法上面打上特性标签[ValidateAntiForgeryToken]即可。
示例如下:
View代码:
<div>
防范CSRF攻击说明
<p>前端加上@Html.AntiForgeryToken();后端加上[ValidateAntiForgeryToken]</p>
@using (Html.BeginForm("Test", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken();
<div>
<input type="text" name="textValue" class="form-control" value="" />
</div>
<div>
<input type="submit" value="测试" class="btn btn-primary" />
</div>
}
</div>
Controller代码:
[ValidateAntiForgeryToken]
public ActionResult Test()
{
return null;
}
原理:
在用户进入页面的时候,会产生一份名为_RequestVerificationToken的cookie,内容是经过编码的信息,发送请求时,先检查这个cookie中的这个信息是否存在,然后才去检查其余内容是否正确,如果正确才会放行。
防范CSRF(一)的更多相关文章
- ASP.NET MVC防范CSRF最佳实践
XSS与CSRF 哈哈,有点标题党,但我保证这篇文章跟别的不太一样. 我认为,网站安全的基础有三块: 防范中间人攻击 防范XSS 防范CSRF 注意,我讲的是基础,如果更高级点的话可以考虑防范机器人刷 ...
- 防范CSRF(二)
在防范CSRF(一)中使用的是微软默认的设置.在信息安全中默认的往往是最危险的.因此可以考虑更改cookie中默认的名字. 更改默认操作在Global.asax中的Application_Start使 ...
- 关于防范csrf攻击基于token鉴权
在web开发中,之前都使用cookie + session方式来实现身份认证鉴权.但是现在前后端分离,以及终端有可能不支持cookie的情况下,一般都采用token方式.现在系统设计思路如下: 服务端 ...
- 如何防范CSRF攻击
上一篇文章了解了一下CSRF和XSS的区别,那么这次我们来看看怎么防范CSRF吧 首先,从上篇文章我们可以看得出,CSRF攻击是有着限制的,而我们可以使用这个限制来对他做相关的防范 方法1:后端在接收 ...
- 防范CSRF(三)
除了可以更改微软默认的cookie的名字外,还可以更改默认的加密方法.继承IAntiForgeryAdditionalDataProvider接口,实现里面的方法即可. 采用的加密方法有加盐和使用时间 ...
- 来了解并防范一下CSRF攻击提高网站安全
看一下我从网上找的原理图,结合举例描述,多看一遍你就知道怎么回事了. CSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具 ...
- 网络XSS攻击和CSRF攻击原理及防范
网络XSS攻击和CSRF攻击原理及防范 原文地址:http://www.freebuf.com/articles/web/39234.html 随着Web2.0.社交网络.微博等等一系列新型的互联网产 ...
- 转:XSS和CSRF原理及防范
原文地址:http://www.freebuf.com/articles/web/39234.html 随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来 ...
- 漏洞科普:对于XSS和CSRF你究竟了解多少
转自:http://www.freebuf.com/articles/web/39234.html 随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广 ...
随机推荐
- myeclipse 配置 resin-pro-4.0.34
热部署: 在 resin.xml 文件下 增加 <host id="" root-directory="."> <!-- webapps ca ...
- Servlet入门和ServletConfig、ServletContext
Servlet是一门用于开发动态web资源的技术. 若想开发一个动态web资源,需要完成以下2个步骤: 1)编写一个Java类,实现servlet接口: 2)把开发好的Java类部署到web服务器中. ...
- SQL Server监控清单
SQL Server监控清单 一. 服务器1. 状态监控(1) 服务器是否可访问?(2) 相应的数据库服务是否启用?(3) 操作系统事件日志中的错误或告警(4) 磁盘可用空间 服务器状态监控,不管使用 ...
- Mac下quick-cocos2d-x player 无法运行解决方案
今天打算在Mac开发我的游戏,因为游戏用的2.2.5版的player,没有安装版.在Mac上运行player时提示player文件已经损坏. 解决方法:在shell下执行如下指令即可 mv $QUIC ...
- ACE 容器之三 ACE_Unbounded_Queue的使用
以下代码演示了如何在ACE_Unbounded_Queue这个队列容器中存储具体的数据元素和数据元素的指针. // ACEqueue.cpp : Defines the entry point for ...
- AJAX实现无刷新验证用户名
register.php <html> <head> <meta http-equiv="content-type" content="te ...
- 【C++自我精讲】基础系列一 指针与引用
[C++自我精讲]基础系列一 指针与引用 一 前言 指针.引用.指针与引用区别. 二 指针 变量:代码中常常通过定义变量来申请并命名存储空间,并通过变量的名字来使用这段存储空间. //变量 ...
- JS —— 数组与字符串方法
数组 1. 基本方法 1)Array.prototype.unshift(item1,item2,item3...) 描述: 在数组的前面添加元素,一次可以传入多个参数. 注意:元素会根据当前传入的 ...
- crontab 定时的陷阱
crontab 任务不执行,首先要查询一下cron任务的宿主和语法: (1). /etc/cron.d/cron_zengtai 这个文件必须是 root:root 否则cron_zengta ...
- IntelliJ IDEA中类似Eclipse自动补全变量名称和属性名称的快捷键
IntelliJ IDEA 默认快捷键模式下 自动补全变量名称 : Ctrl + Alt + v 自动补全属性名称 : Ctrl + Alt + f