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的更多相关文章

  1. web攻击之一:XSS跨站脚本

    一.浏览器安全 同源策略 影响源的因素:host,子域名,端口,协议 a.com通过以下代码: <script scr=http://b.com/b.js> 加载了b.com上的b.js, ...

  2. 使用 PHP 构建的 Web 应用如何避免 XSS 攻击

    本文首先简单介绍开发测试人员如何对 Web 应用进行 XSS 漏洞测试,如何借助工具绕过客户端 JavaScript 校验输入恶意数据:然后针对使用 PHP 语言构建的 Web 站点,从在输出端对动态 ...

  3. Web for pentester_writeup之XSS篇

    Web for pentester_writeup之XSS篇 XSS(跨站脚本攻击) Example 1 反射性跨站脚本,URL中name字段直接在网页中显示,修改name字段, Payload: h ...

  4. Web安全学习笔记 XSS上

    Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...

  5. JMeter-使用Badboy录制Web测试脚本

    JMeter是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放功能,同时提供图形结果分析功能,刚好弥补了J ...

  6. [深入学习Web安全](11)之XSS玩法

    [深入学习Web安全](11)之XSS玩法 本文转自:i春秋社区 前言这篇paper,我们将学习如何优雅的调戏XSS.我们会教大家一些不常用的,但很实用的XSS姿势.我们在正式进入主题之前,先来说一下 ...

  7. 【jmeter】jMeter使用Badboy录制Web测试脚本

    JMeter 是纯Java编写的软件功能和性.能测试工具,其录制脚本过于笨拙和复杂.而Badboy是用C++开发的动态应用测试工具,其拥有强大的屏幕录制和回放 功能,同时提供图形结果分析功能,刚好弥补 ...

  8. Java Web使用过滤器防止Xss攻击,解决Xss漏洞

    转: Java Web使用过滤器防止Xss攻击,解决Xss漏洞 2018年11月11日 10:41:27 我欲乘风,直上九天 阅读数:2687   版权声明:本文为博主原创文章,转载请注明出处!有时候 ...

  9. 网络安全知识--PHP代码审计/Web For Pantesters 的 XSS

    用到 ** WEB FOR Pentester** 注意区分单引号双引号. 常见代码 审计工具 wamp,dwva,zvuldrill,burpsuite,seay源代码审计系统... 1 xss W ...

随机推荐

  1. mysql学习之路_sql

    查看数据库: Show databases; 查看指定部分数据库:模糊查询 Show databases like ‘patten’;--paatten是匹配模式 %:表示是匹配模式 _:表示匹配单个 ...

  2. querySelectorAll()方法

    querySelectorAll()方法 调用的对象包括:Document(文档) DocumentFragment(文档片段) Element(元素) querySelectorAll()方法接收的 ...

  3. mui框架如何实现页面间传值

    mui框架如何实现页面间传值 我的传值 listDetail = '<li class="mui-table-view-cell mui-media>">< ...

  4. linux 配置阿里云yum库

    备份当前yum库 mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex 新建yum源配置目录 mkdir /etc/yum.repos.d 设置阿里yum ...

  5. 【20171101】the first day in a new company

    英文差的要命还飙英文,擦嘞!!! 就是想记录下 点滴 如下配图: | | | V 手动配图这是图!!!

  6. java基础-day13

    第01天 java面向对象 今日内容介绍 u 继承 u 抽象类 第1章   继承 1.1  继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继 ...

  7. Swagger UI教程 API 文档神器 搭配Node使用

    ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger 生成 ASP.NET Web API 前言 swagger ui是一个API在线文档生成和测试的利器,目前发现最 ...

  8. android testview + listview 整体滚动刷新

    listview滚动刷新不再讲述怎么实现 因为想实现整体滚动的效果,初始计划scrollView嵌套listview实现. 问题一:scrollview嵌套listview时,listview只能显示 ...

  9. vue.js入门学习

    可以用淘宝npm镜像 然后安装 然后初始化项目: Watch就是一个监听 v-if是如果为false就根本不在页面存在这个元素 v-show是通过display:none来控制这个元素的显示和隐藏 r ...

  10. 方案dp。。

    最近经常做到组合计数的题目,每当看到这种题目第一反应总是组合数学,然后要用到排列组合公式,以及容斥原理之类的..然后想啊想,最后还是不会做.. 但是比赛完之后一看,竟然是dp..例如前几天的口号匹配求 ...