web的脚本安全-XSS
XSS,即Cross Site Scripting,叫X是因为之前有了一个CSS。中文可以叫跨站脚本攻击。是前端工程师的一大威胁。
XSS的根本,就是有恶意用户把代码植入了你要访问的页面中,从而控制你访问的页面,最终目的是获取你的信息。
1,代码植入
1)URL植入
恶人把构造好的URL,通过聊天工具或论坛或邮件等发布出去,如果有人访问这个URL,【或有触发条件】攻击就会执行。
例如:http://126.com?frameurl=javascript%3Adocument.domain%20%3D%20%22126.com%22%3Balert%28parent.pagev%29%3Bvoid%280%29%3B
2)内容植入
恶人把精心设计的内容保存到服务器,这些内容可能会被展示给别人看(例如个人博客的文章或昵称),一旦别人查看,【或有触发条件】攻击就会执行。
2,控制页面的方式
危险地带,如下代码的alert均可替换为任何危险代码,pagev为页面变量
1)html标签属性,例如:href,value,title,iframe.src等
例如iframe.src
document.getElementById("tiframe").src = "javascript:document.domain = \"126.com\";alert(parent.pagev);void(0);"; 例如value属性,我的名字是:myname" /> <script>alert(pagev)</script>
<input value="myname" /><script>alert(pagev)</script>
2)innerHTML
document.getElementById("tdiv").innerHTML = "<img src=\"xss.jpg\" onerror=\"alert(0)\"></img>";
3)script标签
攻击代码在这里???呵呵呵
4)document.write
攻击代码在这里???呵呵呵
5)html标签事件,例如:onclick或onerror等
6)expression
7)eval(str)或Function(str)()
等等,还有其他
3,获取信息
1)cookie值
2)输入的内容(包括密码)
3)页面上的所有内容
4)本机IP
5)如果有信任的控件,那就可以控制该控件,该控件能做的它也就能做。
6)其他事件,例如恶搞或弹出广告之类
4,防范方法
1,注入防范
注入防范是一项大工程,首先我们要最大限度的限制用户产生内容(来源于用户输入及修改URL),其次实在没有办法,需要评估影响进行转码或过滤。如下三个方法,可选择使用。
1)转码
对特殊字符进行转码
转码包括HTML内容转码(针对innerHTML)、css属性转码(style属性)、事件处理转码、除事件处理和style属性外的其他属性转码、script转码。
2)过滤
对特殊字符进行过滤,包括上面的各项内容。
3)规则限制
例如URL限制域名,例如输入限制长度,例如使用规则引擎限定输入的内容(如<p>字母</p>)。
4)一些有趣的东东(可直接运行)
'XSS'.replace(/XSS/g,alert);
2,信息保护
当已经注入了,居于虚假伪造的行为(居于客户端的行为,例如构造form引导用户输入用户名密码)已经无法阻止,但仍然可以尝试保护用户在服务器的信息,防止通过获取到的信息冒充用户查看或修改用户信息。但这些措施都只是增加攻击难度,而不是终极武器。
1)只读cookie
2)验证客户端IP(可能影响正常用户)
xss攻击方法层出不穷,在有用户输入的情况下,小心再小心。(本文会不定时更新,直至篇幅大到可以新开一篇)
web的脚本安全-XSS的更多相关文章
- web攻击之一:XSS跨站脚本
一.浏览器安全 同源策略 影响源的因素:host,子域名,端口,协议 a.com通过以下代码: <script scr=http://b.com/b.js> 加载了b.com上的b.js, ...
- 使用 PHP 构建的 Web 应用如何避免 XSS 攻击
本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...
- Web for pentester_writeup之XSS篇
Web for pentester_writeup之XSS篇 XSS(跨站脚本攻击) Example 1 反射性跨站脚本,URL中name字段直接在网页中显示,修改name字段, Payload: h ...
- Web安全学习笔记 XSS上
Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...
- JMeter-使用Badboy录制Web测试脚本
JMeter是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放功能,同时提供图形结果分析功能,刚好弥补了J ...
- [深入学习Web安全](11)之XSS玩法
[深入学习Web安全](11)之XSS玩法 本文转自:i春秋社区 前言这篇paper,我们将学习如何优雅的调戏XSS.我们会教大家一些不常用的,但很实用的XSS姿势.我们在正式进入主题之前,先来说一下 ...
- 【jmeter】jMeter使用Badboy录制Web测试脚本
JMeter 是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放 功能,同时提供图形结果分析功能,刚好弥补 ...
- Java Web使用过滤器防止Xss攻击,解决Xss漏洞
转: Java Web使用过滤器防止Xss攻击,解决Xss漏洞 2018年11月11日 10:41:27 我欲乘风,直上九天 阅读数:2687 版权声明:本文为博主原创文章,转载请注明出处!有时候 ...
- 网络安全知识--PHP代码审计/Web For Pantesters 的 XSS
用到 ** WEB FOR Pentester** 注意区分单引号双引号. 常见代码 审计工具 wamp,dwva,zvuldrill,burpsuite,seay源代码审计系统... 1 xss W ...
随机推荐
- Tensflow预测股票实例
import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf #———— ...
- [小结]了解innodb锁
原创文章,会不定时更新,转发请标明出处:http://www.cnblogs.com/janehoo/p/5603983.html 背景介绍: innodb的锁分两类:lock和latch. 其中la ...
- redis.conf之save配置项解读
配置示例: save 900 1 save 300 10 save 60 3600 配置解读: 1) “save 900 1”表示如果900秒内至少1个key发生变化(新增.修改和删除),则重写rdb ...
- 用户权限,pymysql
单表查询的完整语法 select [distinct] [*|字段|聚合函数|表达式] from tablewhere group byhaving distinctorder bylimit mys ...
- (转)Log4Net 全方位跟踪程序运行
转自:http://www.cnblogs.com/qingyuan/archive/2011/05/13/2045616.html 前端日子自己写了一个简单的日志跟踪程序,现在目前正在做的一个项目中 ...
- 将电脑信息上传到中国移动ONENET平台
用两个小时做的 可以用在服务器远程运维等环境非常方便 需要源码的可以联系NBDX123
- web-day12
第12章WEB12-JSP&EL&JSTL篇 今日任务 商品信息的显示 教学导航 教学目标 掌握JSP的基本的使用 掌握EL的表达式的用法 掌握JSTL的常用标签的使用 教学方法 案例 ...
- Windows下Django环境搭建
总体示意图如下: Windows下搭建Django环境 1.安装Python版本 2.安装pip工具,一般Python安装都会自动会有这个,在你python安装命令下Scripts文件夹下 3.dj ...
- 计算几何---凸包问题(Graham/Andrew Scan )
概念 凸包(Convex Hull)是一个计算几何(图形学)中的概念.用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它能包含点集中所有点的.严谨的定义和相关概念参 ...
- 比较两个Excle表格的修改内容
//输入参数为文件输入流public static Map<String, List<String>> excelColumn2maplist(InputStream is){ ...