浅谈XSS攻击与防护(跨站脚本攻击)
Posted 卓网信息
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈XSS攻击与防护(跨站脚本攻击)相关的知识,希望对你有一定的参考价值。
XSS漏洞是Web应用程序中最常见的漏洞之一,XSS-即Cross Site Scripting. 为了与"CSS"不混淆,故简称XSS。
XSS的原理为恶意攻击者往Web页面里插入javascript恶意代码。当用户浏览到写入JavaScript之时,被嵌入Web网页里面的JavaScript恶意代码就会自动被执行,从而达到恶意攻击用户的目的,例如盗取各类用户帐号、网站挂马、盗窃企业重要信息等。
那么如何去防范这类侵害呢?你又了解它多少呢?小编特在此与大家分享全面的XSS常识,让我们拥有一个安全的Web环境。
一.XSS的分类
XSS主要分为两大类:非持久型攻击、持久型攻击。非持久型攻击(反射型XSS):经过后端,不经过数据库;持久型攻击(存储型XSS):经过后端,经过数据库。
1.持久型也可认为是存储型XSS:当恶意的JavaScript代码写入web页面,会被存储到应用服务器端,简而言之就是会被存储到数据库。等用户再次打开web页面时,页面会继续执行恶意代码,达到持续攻击用户的作用。如下案例:在欢迎词处输入框输入JavaScript恶意代码进行保存,当用户在打开这个写入恶意JavaScript代码web页面的时候就会弹出带有恶意数据的弹窗。
2.非持久型XSS:非持久型XSS又叫反射型XSS,属于一次性攻击,仅对当次的页面访问产生影响。非持久型XSS攻击,要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。如下案例:通过搜索功能执行恶意的JavaScript代码点击搜索即执行恶意的JavaScript代码。
3. DOM是一个平台和语言都中立的接口,可以执行程序和脚本,能够动态访问和更新文档的内容、结构以及样式。DOM型XSS是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。如下案例:
http://**.**.**.**/tran/WCCMainPlatV5?CCB_IBSVersion=V5&SERVLET_NAME=WCCMainPlatV5&TXCODE=L10001&tourl=http://**.**.**.**");}alert('456789');});$(function(){if(aa=1){//
XSS防护方案
XSS漏洞在web站点运用中是最为常见的漏洞之一,XSS会以各种方式执行恶意的JavaScript代码来破坏用户使用的站点。我们能够修补XSS漏洞,但是我们也不能100%的肯定没有人可以打破我们的过滤机制。恶意的攻击者总能够找到办法,绕过我们的过滤机制,从而进行恶意代码的执行。
1. 在web页面上,将用户输入的数据都进行转译,也就是将常用的恶意代码中的[<,>,”,,&]等符号都用[<,>,",&]字符进行转译。当这些html标签符号被转译后,浏览器就会拿它当作一个普通字符串对待,而不是当作一个标签的开始/结束标志对待。从而不会执行JavaScript的恶意代码。
2. DOM型XSS的防御方法:DOM型XSS主要是由客户端的脚本通过DOM动态数据输入到页面,而不是依赖于将数据提交给服务器端,从客户端获得DOM中的数据在本地执行。因而,仅从服务器端是无法防御的。其防御在于:(1) 避免客户端文档重写、重定向或其他敏感操作;同时,避免使用客户端数据,这些操作尽量在服务器端使用动态页面来实现;(2) 分析和强化客户端JS代码;特别是受到用户影响的DOM对象,注意能直接修改DOM和创建HTML文件的相关函数或方法,并在输出变量到页面时先进行编码转义,如输出到HTML则进行HTML编码、输出到<script>则进行JS编码。
3. 利用XSS漏洞之所以具有重要意义,是因为通常难以看到XSS漏洞的威胁,而该XSS攻击则将其发挥得淋漓尽致。所以,小编在此与你一起分享了有关XSS攻击的理论知识和常见问题,不知是否对你有所帮助呢?让我们共同来创建一个安全、健康的Web环境。
点击阅读更多往期精彩
卓网信息
以上是关于浅谈XSS攻击与防护(跨站脚本攻击)的主要内容,如果未能解决你的问题,请参考以下文章