防止跨站攻击——CSRFToken
怎么防止跨站攻击:
表单:在 Form 表单中添加一个隐藏的的字段,值是 csrf_token。
非表单:在ajax获取数据时,添加headers:{ 'X-CSRFToken':getCookie('csrf_token') }。
原理:在浏览器访问网站A时,网站A设置cookie会增加随机值csrf_token,这个值是随机的。返回给浏览器时,cookie会储存在浏览器,同时会把csrf_token传给表单里面的隐藏字段。所以当浏览器用自己的表单时会自带csrf_token,网站A取到这个值和cookie里的csrf_token一致就通过。而网站B里面的表单没有这个值,所以不能通过,这样就阻止了恶意攻击。非表单也是这样的原理。
CSRFProtect(app)
上一步的作用: # 开启CSRF保护(不会设置随机值。只会对比随机值,没有或错误都无法访问路由
# 从现在起,程序会获取cookie中的随机值,以及从表单或者ajax中获取随机值,进行对比
# 如果对比失败,则无法访问路由
# 后续需要设置随机值到cookie中,以及增加ajax中的headers
表单:在 Form 表单中添加一个隐藏的的字段,值是 csrf_token。
<form method="post"><input type="hidden" name="csrf_token" value="{{ csrf_token }}"><label>账户:</label><input type="text" name="to_account" placeholder="请输入对方账户"><br/><label>金额:</label><input type="number" name="money" placeholder="请输入转账金额"><br/><input type="submit" value="转账">
</form>
非表单:在ajax获取数据时,添加 headers:{ 'X-CSRFToken':getCookie('csrf_token') }。
$.ajax({url:"/passport/login",method: "post",data: JSON.stringify(params),contentType: "application/json",headers:{'X-CSRFToken':getCookie('csrf_token')},success: function (resp) {if (resp.errno == "0") {// 刷新当前界面location.reload();}else {$("#login-password-err").html(resp.errmsg)$("#login-password-err").show()}}})
防止跨站攻击——CSRFToken相关推荐
- http referer 验证防御方法_渗透测试 跨站攻击防御与安全检测手法剖析
上一节讲到了渗透测试中xss跨站攻击检测方法和防护,这一节也是关于跨站攻击的另一个手法CSRF,很多客户找到我们想要了解更多的跨站攻击检测方法以及防御此类攻击的办法,想要让网站的安全性更加坚固,对此提 ...
- 渗透测试 跨站攻击手法剖析
上一节讲到了渗透测试中xss跨站攻击检测方法和防护,这一节也是关于跨站攻击的另一个手法CSRF,很多客户找到我们Sinesafe想要了解更多的跨站攻击检测方法以及防御此类攻击的办法,想要让网站的安全性 ...
- PHP 防XSS跨站攻击
//防止跨站攻击static public function removeXss($val){ $val = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\ ...
- 【DVWA(五)】XXS存储型跨站攻击
XSS存储型跨站攻击(Stored Cross Site Scripting) 前言: 相较于XSS反射型跨站攻击,存储型具有更严重的危害,如果在窃取信息的同时对网页没有任何变化,那受害者将很难发现. ...
- 总结 XSS 与 CSRF 两种跨站攻击
在那个年代,大家一般用拼接字符串的方式来构造动态 SQL 语句创建应用,于是 SQL 注入成了很流行的攻击方式.在这个年代, 参数化查询 [1] 已经成了普遍用法,我们已经离 SQL 注入很远了.但是 ...
- XSS与CSRF两种跨站攻击比较
XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求伪造(Cross-site request forgery) 在那个年代,大家一般用拼接字符串的方式来构造动态SQL 语 ...
- php mysql可以跨站_Laravel5中防止XSS跨站攻击的方法
本文实例讲述了Laravel5中防止XSS跨站攻击的方法.分享给大家供大家参考,具体如下: Laravel 5本身没有这个能力来防止xss跨站攻击了,但是这它可以使用Purifier 扩展包集成 HT ...
- XSS和CSRF两种跨站攻击比较
以下是我从一个大佬那转过来的 觉得写得非常非常好哈哈哈 忍不住想转载 可惜好像从博客园直接转过来转不过来 这是原文链接 XSS:跨站脚本(Cross-site scripting) CSRF:跨站请求 ...
- 总结XSS与CSRF两种跨站攻击
XSS:跨站脚本(Cross-site scripting),实际应是"CSS",但由于和层叠样式表CSS名称冲突,故改为"XSS" CSRF:跨站请求伪造(C ...
- Nancy启用跨站攻击防护(CSRF)
什么是CSRF(跨站攻击) 可能很多人已经对CSRF有所了解,就简单的介绍下: CSRF全程是 Cross-Site Request Forgery .大概意思就是在登录用户不知情的情况下,由一个网站 ...
最新文章
- java 挂钩子_挂钩组件
- 中医点滴 2 --- 保和丸 + 口气重
- (转载)数据库范式及宽表窄表理解
- 写一个实时监控IP连通性的小脚本
- java 设置panel背景图片_jpanel设置背景图片的二个小例子
- JVM :执行jinfo命令报错Can't attach symbolicator to the process
- Oracle Hint
- 数据增强 | 小综述
- 查看网络情况netstat指令与动态监控top指令
- 使用字符串格式化函数
- sqlserver导出表结构到excel
- linux命令比较命令,Linux命令 比较文件
- html读取在线文件,javascript中如何读取文件?
- SPSS图文教程:两个率的比较(卡方检验)及Fisher精确检验
- 2022R1快开门式压力容器操作考试模拟100题模拟考试平台操作
- MATLAB---绘制三维图形函数实例介绍
- 贝蒂·霍尔伯顿(Betty Holberton)断点背后的大脑
- 笔记本电脑外接显示器显示不全
- 【iOS遇到的问题】switch控件--在设置switch按钮状态为on或者off,运行app,模拟器黑屏
- 无线充电组别国一队:浙江工业大学