XSS攻击的介绍及防御

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。

http://flyingsnail.blog.51cto.com/5341669/1335997



 

前两天QA提上来一个问题,说是页面上会弹出框来。本以为是我的测试JS代码忘记删掉了,后来再看才发现是有人提交测试评论时,故意协商了JS代码,页面直接解析该JS就有弹出框了,代码如下:

    <script>alert("1")</script>

     后来在网上一搜才知道这个叫做XSS攻击,即(Cross Site Scripting) 跨站脚本攻击。是Web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的.  比如获取用户的Cookie,导航到恶意网站,携带木马等。

 

    假如有下面一个textbox

    <input type="text" name="address1" value="value1from">

    value1from是来自用户的输入,如果用户不是输入value1from,而是输入 "/><script>alert(document.cookie)</script><!- 那么就会变成

     <input type="text" name="address1" value=""/><script>alert(document.cookie)</script><!- ">

    嵌入的JavaScript代码将会被执行

    或者用户输入的是  "οnfοcus="alert(document.cookie)      那么就会变成 

    <input type="text" name="address1" value="" οnfοcus="alert(document.cookie)">

     事件被触发的时候嵌入的JavaScript代码将会被执行

     攻击的威力,取决于用户输入了什么样的脚本

    对它的介绍在一下链接中介绍的很详细,可惜主要讲的是ASP.NET的,不是JAVA的。但是原理是一样的。

    http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html

    XSS之所以会发生, 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的"中括号", “单引号”,“引号” 之类的特殊字符进行编码。以下链接介绍的是一个老外写的JAVA类,

    http://josephoconnell.com/java/xss-html-filter/

    另外还找到一篇文章介绍了两个类似的JAVA类:

    http://www.myhack58.com/Article/html/3/7/2008/18645.htm

    使用起来很简单,就是后台在接收到提交信息后,调用下该类的filter方法,进行一下替换,得到安全的内容。

    当然,以上介绍的都是后台处理的方式,前端也可以处理,同样是替换,但是不够友好型。以下网站就介绍了一段JS过滤XSS攻击的方法:

    http://blog.csdn.net/a0820010401/article/details/9169131

 

    哎!码农真的不是这么好做的啊,很多代码都是不安全的,要做完全的防范啊!不然,用户信息轻易的就被弄走了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值