xss攻击

来源:互联网 发布:货物存储软件 编辑:程序博客网 时间:2024/05/16 09:14

文章借鉴:http://blog.csdn.net/ghsau/article/details/17027893

 xss攻击

 今天测试的时候发现总是有个弹窗口,要点击3次才能关闭,一直以为是开发忘记把测试的alter删除掉了,结果问了下有经验的人描述了这个现象原来是网站被黑了!,在了解情况后原来是有人在做安全测试。。。具体描述图解。




之后去查询了下知识,原来上个月我已经看过这部分知识,只是没有真正遇到过,原来xss攻击时这个样的,呵呵
然后自己简单的总结了下,xss工具的必要因素就是要有几个关键字,如:(<)、(>)(&)(")( ),然后黑客在访问的浏览器输入page.action?title=<script>alert(“xss”)</script>,然后就沦陷了。。。。

最后结合实际看下了,在第三页的最后一条数据中的确存在有">这种符号,形成了必要条件,然后网上查询了下,只有过滤掉这些关键字,或者在页面上转换后可以避免被攻击

这是从网上抄的哈,但是的确是这样的。。。

Html encode

       假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。

less-than character (<)

&lt;

greater-than character (>)

&gt;

ampersand character (&)

&amp;

double-quote character (")

&quot;

space character( )

&nbsp;

Any ASCII code character whose code is greater-than or equal to 0x80

&#<number>, where <number> is the ASCII character value.

      比如用户输入:<script>window.location.href=”http://www.baidu.com”;</script>,保存后最终存储的会是:&lt;script&gt;window.location.href=&quot;http://www.baidu.com&quot;&lt;/script&gt;在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。
java的转义

private static String htmlEncode(char c) {

    switch(c) {

       case '&':

           return"&amp;";

       case '<':

           return"&lt;";

       case '>':

           return"&gt;";

       case '"':

           return"&quot;";

       case ' ':

           return"&nbsp;";

       default:

           return c +"";

    }

}



0 0
原创粉丝点击