xss攻击 今天测试的时候发现总是有个弹窗口,要点击3次才能关闭,一直以为是开发忘记把测试的alter删除掉了,结果问了下有经验的人描述了这个现象原来是网站被黑了!,在了解情况后原来是有人在做安全测试。。。具体描述图解。
之后去查询了下知识,原来上个月我已经看过这部分知识,只是没有真正遇到过,原来xss攻击时这个样的,呵呵
然后自己简单的总结了下,xss工具的必要因素就是要有几个关键字,如:(<)、(>)、(&)、(")、( ),然后黑客在访问的浏览器输入page.action?title=<script>alert(“xss”)</script>,然后就沦陷了。。。。
最后结合实际看下了,在第三页的最后一条数据中的确存在有">这种符号,形成了必要条件,然后网上查询了下,只有过滤掉这些关键字,或者在页面上转换后可以避免被攻击
这是从网上抄的哈,但是的确是这样的。。。
Html encode 假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换。 less-than character (<) | < | greater-than character (>) | > | ampersand character (&) | & | double-quote character (") | " | space character( ) | | 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>,保存后最终存储的会是:<script>window.location.href="http://www.baidu.com"</script>在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码。java的转义
private static String htmlEncode(char c) { switch(c) { case '&': return"&"; case '<': return"<"; case '>': return">"; case '"': return"""; case ' ': return" "; default: return c +""; } }
|