Heim  >  Artikel  >  Web-Frontend  >  使用转义防御XSS_html/css_WEB-ITnose

使用转义防御XSS_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:24:441400Durchsuche

在输出的时候防御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等伪协议攻击。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn