web前端防止xss 攻击
对输出进行编码 在输出数据之前对潜在的威胁的字符进行编码、转义是防御XSS攻击十分有效的措施。如果使用好的话,理论上是可以防御住所有的XSS攻击的。 对所有要动态输出到页面的内容,通通进行相关的编码和转义。当然转义是按照其输出的上下文环境来决定如何转义的。 1> 作为body文本输出,作为html标签的属性输出: 比如: u s e r n a m e < / s p a n > , < p > < c : o u t v a l u e = " {username}</span>, <p><c:out value=" u s e r n a m e < / s p a n > , < p > < c : o u t v a l u e = " {username}"></c:out> 此时的转义规则如下: < 转成 < 转成 > & 转成 & " 转成 " ’ 转成 ' 2> javascript事件 <input type=“button” οnclick=‘go_to_url("${myUrl}");’ /> 除了上面的那些转义之外,还要附加上下面的转义: \ 转成 \ / 转成 / ; 转成 ;(全角;) 3> URL属性 如果 确保:href 和 src 的值必须以 http://开头,白名单方式;不能有10进制和16进制编码字符。 HttpOnly 与 XSS防御