Web安全相关(一):CSRF/XSRF(跨站请求伪造)和XSS(跨站脚本)
XSS(Cross Site Script):跨站脚本,也就是javascript脚本注入,一般在站点中的富文本框,里面发表文章,留言等表单,这种表单一般是写入数据库,然后再某个页面打开。
防御:
1,在用户表单输入的数据进行过滤,对javascript进行转义,然后再存入数据库;
2,在信息的展示页面,也要进行转义,防止javascript在页面上执行。
CSRF(Cross-site request forgery):跨站请求伪造,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,与XSS不用的是:XSS利用的是站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。
比如黑客A在自己的网站恶意注入了一个src的网址,是个恶意请求访问,类似银行转账,小白刚好登陆过自己银行系统,浏览器目前还保留有登陆过的cookie,小白点击了黑客A的网站里的银行恶意请求,此时该请求后台以为是小白自己想要访问的,因为带了小白自己的cookie,就去处理小白的请求了。但是黑客A拿不到服务器的response的,只是伪造了请求参数。
无论是GET请求还是POST请求都可能存在CSRF攻击,无论是php后台还是java后台,都是可以区分是哪种请求方式。如果是get请求,则在危险网站B中直接使用src标签进行get请求,如果是post请求则需要写一个form表单,进行post伪造请求,也是可以实现的。最常用的就是使用一个<img>标签,post请求比较麻烦。
CSRF攻击其实就是源于【WEB的隐式身份验证机制】。虽然可以保证一个请求是来源于某个用户的浏览器,但是却无法保证该请求是用户批准发送的!!!其根本原因就是Web站点所验证的是Web浏览器而非用户本身。
主要原因是同一个浏览器会共享cookie,防止CSRF的方法:只要确保请求是自己的站点发出的即可。例如:处理请求的时候加上验证:Cookie+Token。
防御:客户端和服务端
1,Request header里的Referer参数不同
Referer参数是请求源地址参数,黑客A的请求Url是自己的,而真正银行系统的源地址跟黑客A的不同,可以利用Referer的不同加以预防,但是Referer是浏览器的,黑客可能篡改,所以不能完全保证安全。【来源记录很容易伪造】
2,请求Url中加上Token验证
无论是get还是post请求加上一个server返回的token参数校验,Referer+token可以有效防御。
3,服务端:思想是在客户端加上伪随机数
验证码,每次用户提交的时候填写一个图片上的随机字符串,可以完全解决CSRF,但是用户体验不好。
token(不同的表单包含一个不同的伪随机数)
【完】
天才源于勤奋
Web安全相关(一):CSRF/XSRF(跨站请求伪造)和XSS(跨站脚本)的更多相关文章
- CSRF/XSRF 跨站请求伪造
CSRF/XSRF 跨站请求伪造 CSRF(Cross Site Request Forgery, 跨站域请求伪造)也称 XSRF, 是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安 ...
- Web安全之CSRF(跨站请求伪造)
CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为"CSRF",在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺 ...
- web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)
web 安全 & web 攻防: XSS(跨站脚本攻击)和 CSRF(跨站请求伪造) XSS(跨站脚本攻击)和CSRF(跨站请求伪造) Cross-site Scripting (XSS) h ...
- Tornado 的安全性保障机制Cookie XSRF跨站请求伪造阻断 &用户验证机制
6.1 Cookie 对于RequestHandler,除了在第二章中讲到的之外,还提供了操作cookie的方法. 设置/获取 注意:Cookie 在浏览器调试时, 只有在第一次访问该网站的时候获取到 ...
- CSRF(跨站请求伪造)攻击
CSRF(跨站请求伪造)攻击 CSRF(Cross Site Request Forgery,跨站请求伪造)是一种近年来才逐渐被大众了解的网络攻击方式,又被称为One-Click Attack或Ses ...
- revel框架教程之CSRF(跨站请求伪造)保护
revel框架教程之CSRF(跨站请求伪造)保护 CSRF是什么?请看这篇博文“浅谈CSRF攻击方式”,说的非常清楚. 现在做网站敢不防CSRF的我猜只有两种情况,一是没什么人访问,二是局域网应用.山 ...
- Django day15 (二) csrf的 跨站请求伪造 与 局部禁用 , 局部使用
一: csrf 的跨站请求伪造 二: csrf 的局部禁用 , 局部使用
- Django中间件,CSRF(跨站请求伪造),缓存,信号,BootStrap(模板)-响应式(栅格)+模板
Django中间件,CSRF(跨站请求伪造),缓存,信号,BootStrap(模板)-响应式(栅格)+模板 1.中间件(重要): 在Django的setting中有个MIDDLEWARE列表,里面的东 ...
- 关于XSS(跨站脚本攻击)和CSRF(跨站请求伪造)
我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...
随机推荐
- SSH(struts+spring+hibernate)常用配置整理
SSH(struts+spring+hibernate)常用配置整理 web.xml配置 <?xml version="1.0" encoding="UTF-8&q ...
- iOS涂色涂鸦效果、Swift仿喜马拉雅FM、抽屉转场动画、拖拽头像、标签选择器等源码
iOS精选源码 LeeTagView 标签选择控件 为您的用户显示界面添加美观的加载视图 Swift4: 可拖动头像,增加物理属性 Swift版抽屉效果,自定义转场动画管理器 Swift 仿写喜马拉雅 ...
- [LC] 15. 3Sum
Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find ...
- [LC] 122. Best Time to Buy and Sell Stock II
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- 接口测试时返回的响应报json错误
问题: 测试接口时,传入错误数据,最开始对于错误数据也返回了json数据的响应:后来传入错误数据,接口突然就没有返回json数据,通过在出错的代码之前进行打印,发现接口报500了 检查错误的方法1:在 ...
- 网络TCP/IP分层、子网掩码等基本概念
一.TCP/IP分层: OSI七层网络模型 TCP/IP四层概念模型 对应网络协议 应用层(Application) 应用层 HTTP.TFTP, FTP, NFS, WAIS.SMTP 表示层(Pr ...
- 无标定量|有标定量|谱图计数|XIC|AMT数据库|RT对对齐|母离子|子离子|SILVER|SRM|iBAQ|APEX|差异蛋白筛选|MaxQuant|PANDA|C-HPP
生物医学大数据-蛋白质定量 现今肽段定量效率存在巨大差异.比如相同质量蛋白质,但是肽段和蛋白信号不均一,在物理条件一致时,仅有70%的重复率,并且当重复次数变多时,overlapping在变少. 无标 ...
- Python之configparser配置文件的读取
配置文件名 config.ini 文件内容: [linux] ip:10.0.13.26 port:22 username:root password:W2ynE6b58wheeFho [mysql] ...
- Android开发之《libyuv库的使用》
转自:http://bashell.nodemedia.cn/archives/build-google-libyuv-with-ndk-for-android.html 官方网站:https://c ...
- Zabbix 监控进程参考
1)zabbix自动发现占用内存最大top10进程并监控资源 http://blog.csdn.net/ybx13218464908/article/details/47819401