XSS(href输出,js输出)防范措施
html href属性
防御总的原则:根据实际情况对输⼊做过滤,对输出做转义
href输出漏洞:输出出现在a标签的href属性⾥⾯,可以使⽤javascript协议来执⾏js
后端:
$message=htmlspecialchars($_GET['message'],ENT_QUOTES);
$html.="<a href='{$message}'>
可以看到,虽然对htmlspecialchars()函数做了额外的处理,但是,它把输出放在了a标签的href属性⾥,所以我们可以⽤下⾯的payload让这种⽹页执⾏我们的代码:
javascript:alert("hello")
结果如图:
从结果中可以看出,上⾯这种漏洞中我们可以轻易地利⽤javascript协议来执⾏任何我们构造的js代码。
防御:
1.a标签的href属性中⼀般放的是URL(链接),所以我们可以规定, 这⾥的输⼊必须以http或者https开头,否则不予以输⼊。
2.再对这⾥进⾏htmlspecialchars(,ENT_QUOTES)函数处理。
js输出漏洞:
输出点是在javaScript,通过⽤户的输⼊动态的⽣成JavaScript代码
javaScript⾥⾯是不会对tag和字符实体进⾏解释的,所以正常的输⼊得不到正常的输出,这不是我们需要的,所以,如果需要进⾏处理,就进⾏JavaScript转义处理,也就是⽤\ 对特殊字符进⾏处理。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。