zoukankan      html  css  js  c++  java
  • 使用转义防御XSS

    使用转义防御XSS

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

    在html标签中输出

    <HTML标签>[输出]</HTML标签>
    

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

    输出在普通html属性中

    <div attr=不可信数据>content</div>
    

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

    在script标签中输出

    <script>var $a="不可信数据"</script>
    

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

    输出在on事件中

    <a href=# onlick="funcA('$var')"> test</a>
    

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

    在地址中输出

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

  • 相关阅读:
    c++多继承布局
    copy constructor
    default construction
    对象模型如何影响程序
    c++对象模型-对象模型
    在网站中引入特殊字体
    数组基础相关
    CSS3 transform3D
    即时效果--元素出现在页面特定区域时加载
    svg动态绘制饼状图
  • 原文地址:https://www.cnblogs.com/xdans/p/5412737.html
Copyright © 2011-2022 走看看