web 安全问题(二):XSS攻击
上文说完了CSRF攻击,本文继续研究它的兄弟XSS攻击。
什么是XSS攻击
XSS攻击的原理
XSS攻击的方法
XSS攻击防御的手段
什么是XSS攻击
XSS攻击全名(Cross-Site-Script)跨域脚本攻击,为了跟CSS(Cascading-Style-Sheet)区分开来,所以缩写是XSS。
XSS攻击的原理
上一节说道的CSRF攻击是利用的是“伪请求”,这一节的XSS的原理是利用脚本注入的方式。
主要是依靠一切可能的手段,将浏览器中可以执行的脚本(javascript)植入到页面代码中,从而获取用户cookie甚至账号密码等敏感数据使用户造成的一定的损失。
通常利用的是目标网站的发帖、发布产品等需要用户输入的地方,将脚本混淆到html输入中,上传到服务器,再诱导别的用户打开此页面,执行脚本的一个过程。
XSS攻击的方法
xss漏洞是对web客户端(浏览器)的攻击,所以说植入的代码基本上以javascript和html标签(有时也有结合css样式的xss向量)为主。
一般有四种方法:
- 页面标签附带脚本
- Dom 属性附带脚本
- 请求地址附带脚本
- 回车空格突破过滤限制
举两个小李子:
<script>alert('xss')</script>
<img scr=1 onerror=alert('xss')>
<a href=javascrip:alert('xss')>s</a>
<iframe src=javascript:alert('xss');height=0 width=0 />
<img src=x onerror=appendChild(createElement('script')).src='js_url' />
<img src = “#”/**/onerror = alert(/XSS/)>
<img src = j
ava script :a ler t(/xss/)>
XSS攻击防御的手段
因为XSS的根本就是向网站插入脚本代码,并使它运行的一种手段。防御方法分为两种,服务端防御和客户端防御。
服务端防御:
1. HttpOnly
可以限制javascript不能读取cookie,防止会话ID泄露
2.处理富文本
过滤掉富文本中的敏感标签如(script、iframe、form),还有敏感词(javascript:) 等等
客户端防御:
1. 输入检查
防止输入敏感字段,如javascript、cookie等等
2. 检查输出
脚本都是通过混淆在HTML当中,被当成html代码的一部分才得到执行。
可以通过编码转义的办法,使得混淆在其中的脚本被当成文本处理,不会被执行。
编码转义的话,有三种方法:
1. HTML encode
将字符转换成HTMLEntities,一般会转(&、<、>、"、'、/)这6个字符。一般是在html标签属性输出的时候使用
2. JavaScriptEncode
使用”\“对特殊字符进行转义。
一般在script标签输出、事件输出、CSS输出
3. URL Encode
使用URLEncode的方法。
参考:
XSS的原理分析与解剖
跨站脚本攻击(XSS)——常见网站攻击手段原理与防御
XSS攻击及防御
XSS攻击的解决方法
web 安全问题(二):XSS攻击的更多相关文章
- 安全学习笔记-web安全之XSS攻击
web安全之XSS攻击 XSS 即跨站脚本攻击,是 OWASP TOP10 之一.它的全称为 Cross-site scripting,因为 CSS 这个简称已经被占用表示为前端三剑客之一的CSS,所 ...
- WEB安全测试之XSS攻击
目录结构 1.背景知识 2.XSS漏洞的分类 3.XSS防御 4.如何测试XSS漏洞 5.HTML Encode 6.浏览器中的XSS过滤器 7.ASP.NET中的XSS安全机制 一.背景知识 1.什 ...
- Web 安全之 XSS 攻击与防御
前言 黑客,相信大家对这一名词并不陌生,黑客们往往会利用 Web 应用程序的漏洞来攻击咱们的系统.开放式 Web 应用程序安全项目(OWASP, Open Web Application Securi ...
- web安全之XSS攻击原理及防范
阅读目录 一:什么是XSS攻击? 二:反射型XSS 三:存储型XSS 四:DOM-based型XSS 五:SQL注入 六:XSS如何防范? 1. cookie安全策略 2. X-XSS-Protect ...
- 记一次JAVA WEB项目解决XSS攻击的办法(亲测有效)
什么是XSS攻击 简单来说,XSS 攻击是页面被注入了恶意的代码,度娘一大堆的东西,不想说 系统架构主要是SSM框架,服务层另外使用了DubboX. 为啥说这个,因为SpringMVC对于Xss攻 ...
- web安全之xss攻击
xss攻击的全称是Cross-Site Scripting (XSS)攻击,是一种注入式攻击.基本的做法是把恶意代码注入到目标网站.由于浏览器在打开目标网站的时候并不知道哪些脚本是恶意的,所以浏览器会 ...
- 基于web站点的xss攻击
XSS(Cross Site Script),全称跨站脚本攻击,为了与 CSS(Cascading Style Sheet) 有所区别,所以在安全领域称为 XSS. XSS 攻击,通常指黑客通过 HT ...
- 常见Web安全漏洞--------XSS 攻击
1,XSS 攻击 XSS攻击使用Javascript脚本注入进行攻击 例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端. <script& ...
- web安全(xss攻击和csrf攻击)
1.CSRF攻击: CSRF(Cross-site request forgery):跨站请求伪造. (1).攻击原理: 如上图,在B网站引诱用户访问A网站(用户之前登录过A网站,浏览器 cookie ...
- WEB安全实战(二)带你认识 XSS 攻击
前言 上一篇文章写了关于 WEB 安全方面的实战,主要是解决 SQL 盲注的安全漏洞.这篇文章本来是要写一篇关于怎样防治 XSS 攻击的,可是想来想去,还是决定先从理论上认识一下 XSS 吧.下一篇文 ...
随机推荐
- 常用工具软件之串口终端工具——SecureCRT和xshell
SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单的说是Windows下登录UNIX或Linux服务器主机的软件.SecureCRT支持SSH,同时支持Telnet和rlog ...
- MySQL 分库备份
mysql -uroot -p'password' -e "show databases;"|grep -Evi "database|infor|perfor" ...
- C++ union使用注意
union在我们敲代码的时候的使用概率远远小于struct.所以我们常常不太关心她.就知道他是使用内存复用技术.同一个时刻,他仅仅能存在一个成员的值. C中,我们在union中能够包括struct的, ...
- EXCEPTION-JS
CreateTime--2016年11月22日13:00:55Author:Marydon 声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇 ...
- JAVA虚拟机内存架构
Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途.创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随 ...
- PHP-中文在计算机中的存储
经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. ● 为什么有这么多编码? ...
- ReentrantLock和synchronized的区别随笔
http://wsmajunfeng.iteye.com/blog/1492316 可重入锁 ReentrantLock 的含义是: 当某个线程获取某个锁后,在未释放锁的情况下,第二次再访问该锁锁定的 ...
- HDUOJ --2523
http://acm.hdu.edu.cn/showproblem.php?pid=2523 哈希表..球阀 代码: #include<iostream> #include<vec ...
- tensorflow的警告
W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_featur ...
- iOS archiveRootObject 归档失败问题
归档失败问题出在路径上,NSHomeDirectory() NSString *stringPath = [NSSearchPathForDirectoriesInDomains(NSDocument ...