使用转义防御XSS_html/css_WEB-ITnose

WBOY
풀어 주다: 2016-06-24 11:24:44
원래의
1409명이 탐색했습니다.

在输出的时候防御XSS即对用户输入进行转义,XSS的问题本质上还是代码注入,HTML或者javascript的代码注入,即混淆了用户输入的数据和代码。而解决这个问题,就需要根据用户可控数据具体输出的环境进行恰当的转义。

在html标签中输出

<HTML标签>[输出]</HTML标签>
로그인 후 복사

只需要htmlencode即可。更具体是转义掉< > 就可以防止html注入。

输出在普通html属性中

<div attr=不可信数据>content</div>
로그인 후 복사

好的方案应该是把不可信数据用双引号包裹起来,然后对数据进行htmlencode。

在script标签中输出

<script>var $a="不可信数据"</script>
로그인 후 복사

确保输出变量在引号中,使用javascript编码输入数据。要防止 截断

输出在on事件中

<a href=# onlick="funcA('$var')"> test</a>
로그인 후 복사

防御:先做javascript编码,再做html编码。因为输出数据位于html标签属性中,浏览器会进行html自解码。

在地址中输出

对协议进行白名单,http或者https,然后对其他部门进行url编码。避免javascript,data uri等伪协议攻击。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿