Pikachu中 Xss的简单防御剖析 --小文文
xss的防范措施总原则:
输入做过滤,输出做转义
过滤:比如对输入的东西做要求,如输入手机号,只能输入数字
转义∶所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行js转义。
输入过滤
第一part + 防御
例子:输入内容<script>alert(‘123’)</script>
说明:我们输入的<script></script>被过滤掉了
这里使用,实现简单的防御
//preg_replace正则表达式对<script进行替换为空,也就是过滤掉
$message=preg_replace('/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/', '', $_GET['message']);
第二part 严谨的防御++
防御 大小写 输入内容:<SCRIPT>alert(‘123’)</SCRIPT>
点击submit,有下图所示:
利用escapeHTML()函数,实现防御
防御核心
//这里会使用正则对<script进行替换为空,也就是过滤掉,修改方式是:添加escape()函数
$message=escape(preg_replace