XSS攻击

什么是XSS

XSS(Cross Site Scripting):跨站式脚本攻击,为防止和CSS混淆简称为XSS,简单来说就是攻击者在用户的浏览器张执行恶意脚本的脚本注入式攻击.对于用户浏览器来说并不能识别出恶意的脚本,当用户去访问该网站时恶意脚本被执行,便造成了许多安全问题.
看一个最简单的例子来理解XSS攻击
在页面上的输入框中进行如下操作

输入脚本

点击提交

并没有按照我们的预期将输入的内容显示,而是执行了脚本

XSS出现最主要的原因

Web应用未对用户提交请求的数据做充分的检查过滤,允许用户在提交的数据中掺入HTML代码(最主要的是“>”、“<”), 并将未经转义的恶意代码输出到第三方用户的浏览器解释执行,是导致XSS漏洞的产生原因。

XSS可能导致的安全性问题:

  • 泄露用户的账号,密码等隐私数据
  • 操作企业敏感数据
  • 非法转账
  • 挂入木马网站
  • 强制发送电子邮件
  • 操控用户又向其他网站发起攻击

XSS的分类

  • 反射型XSS

将脚本代码加入URL地址的请求参数里,请求参数进入程序后在页面直接输出,用户点击类似的恶意链接就可能受到攻击。

  • 存储型XSS

主要出现在让用户输入数据,供其他浏览此页的用户进行查看的地方,包括留言、评论、博客日志和各类表单等。
应用程序从数据库中查询数据,在页面中显示出来,攻击者在相关页面输入恶意的脚本数据后,用户浏览此类页面时就可能受到攻击。
这个流程简单可以描述为:恶意用户的Html输入Web程序->进入数据库->Web程序->用户浏览器。

预防XSS的七条原则

  • 原则1:不要在页面中插入任何不可信数据
  • 原则2:在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码

有几个特别注意需要编码的

&     –>     &amp;
<     –>     &lt;
>     –>     &gt;
”     –>     &quot;
‘     –>     '
/     –>     /
  • 原则3:在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码
  • 原则4:在将不可信数据插入到SCRIPT里时,对这些数据进行SCRIPT编码
  • 原则5:在将不可信数据插入到Style属性里时,对这些数据进行CSS编码
  • 原则6:在将不可信数据插入到HTML URL里时,对这些数据进行URL编码
  • 原则7:使用富文本时,使用XSS规则引擎进行编码过滤
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,m...
    dreamer_lk阅读 7,718评论 0 6
  • 转载:http://www.imooc.com/article/13553 XSS攻击是什么XSS是跨站脚本攻击的...
    binginto阅读 676评论 0 0
  • 前段时间在学习Web安全方面的知识,对这方面有了进一步的了解,决定写文章记录下来,只是对Web安全方面知识的一些总...
    邱振源的博客阅读 1,286评论 0 1
  • 前端安全之XSS攻击 XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重...
    raincoco阅读 616评论 0 1
  • XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端...
    一只大橘阅读 726评论 0 6