xss防范措施及href和js输出点的案例演示

XSS常见防范措施
总的原则:输入做过滤,输出做转义
在这里插入图片描述
我们直接来到pikachu的xss案例中来看
xss防范措施及href和js输出点的案例演示_第1张图片
现在我们能知道这个地方的后台是可以使用javascript来执行的
xss防范措施及href和js输出点的案例演示_第2张图片
提交以后来看一下源码
xss防范措施及href和js输出点的案例演示_第3张图片
xss防范措施及href和js输出点的案例演示_第4张图片
我们能发现整个输入都在a标签的href里面,所以我们刚才的alert(111)能被执行
xss防范措施及href和js输出点的案例演示_第5张图片
这个a标签的href在做防范时,仅仅依靠htmlspecialchars是不够的,我们在做这个地方的过滤,应该只允许http,https通过输入,在通过htmlspecialchars做好特殊符号处理,这样就能做到很好的防范
在这里插入图片描述
我们继续来看下一个案例
xss防范措施及href和js输出点的案例演示_第6张图片
我们随意输入几个字符
xss防范措施及href和js输出点的案例演示_第7张图片
我们会发现它会把我们的输入放到js里面去,然后再把变量进行判断,再做对应的输出
xss防范措施及href和js输出点的案例演示_第8张图片
那么我们来试试输入tmac来看看会怎样
xss防范措施及href和js输出点的案例演示_第9张图片
我们能发现它会输出一张图片,因为java script无非就是构造闭合,所以我们来构造一段闭合
在这里插入图片描述
这样就行,前面讲过的闭合,很简单,我们把这个payload放进去
xss防范措施及href和js输出点的案例演示_第10张图片
点提交以后,我们的输出就会弹出来了
xss防范措施及href和js输出点的案例演示_第11张图片
这里是输入动态的生成到了js中,形成xss
javascript里面是不会对tag和字符实体j进行解释的,所以需要进行js转义
如果这里这个地方对html进行实体编码,虽然可以解决xss的问题,但是编码之后的内容,在js里面是不会进行翻译的,如果进行编码了,就会导致你的输入进去以后,输出会出现问题,所以在JS的输出点应该使用\对特殊字符进行转义。

你可能感兴趣的:(xss防范措施及href和js输出点的案例演示)