zoukankan      html  css  js  c++  java
  • phalcon: 上下文转义

    phalcon: 上下文转义

    PhalconEscaper

    转义特殊的字符

    一:字符转义

    $maliciousTitle = '</title><script>alert(1)</script>';
    $e = new PhalconEscaper();
    echo $e->escapeHtml($maliciousTitle) 
    

      

    最不安全的情形即是在html标签中插入非安全的数据

    我们可以使用escapeHtml方法对这些文本进行转义:

    $e->escapeHtml('></div><h1>myattack</h1>'); 
    

      

    二,html属性转义

    <table
     width="<?php echo $e->escapeHtmlAttr('"><h1>Hello</table'); ?>"
    ><tr><td>
    Hello
    </td></tr></table>
    
    结果如下:
    <table
     width=""><h1>Hello</table"
    ><tr><td>
    Hello
    </td></tr></table>
    

      

    三,url的转义

    一些html的属性如href或url需要使用特定的方法进行转义:

    我们这里使用escapeUrl方法进行url的转义:

    <a
     href="<?php echo $e->escapeUrl('"><script>alert(1)</script><a href="#'); ?>"
    >
    Some link
    </a>
    
    结果如下:
    <a
     href="%22%3E%3Cscript%3Ealert%281%29%3C%2Fscript%3E%3Ca%20href%3D%22%23"
    >
    Some link
    </a>
    

      

    四,CSS转义

    CSS标识/值也可以进行转义:

    这里我们使用escapeCss方法进行转义:

    <a
     style="color: <?php echo $e->escapeCss('"><script>alert(1)</script><a href="#'); ?>"
    >
    Some link
    </a>
    
    结果:
    <a
     style="color: 22 3e 3c script3e alert28 129 3c 2f script3e 3c a20 href3d 22 23 "
    >
    Some link
    </a>
    

      

    五,js转义

    插入Javascript代码的字符串也需要进行适当的转义:

    这里我们使用escapeJs进行转义:

    <script>
    document.title = '<?php echo $e->escapejs("'; alert(100); var x='"); ?>'
    </script>
    
    结果: <script> document.title = 'x27; alert(100); var xx3dx27' </script>

      

  • 相关阅读:
    Web服务器的Socket通信
    Love story
    Excel初探索 - 2008/3
    One Person Game ZOJ Problem Set 3329
    只有程序员才看得懂的情书
    Collecting Bugs_poj2096
    Scout YYF I_poj3744
    hdu 3336 Count the string
    hdu 1669 Jamie's Contact Groups
    poj 1240
  • 原文地址:https://www.cnblogs.com/achengmu/p/5914531.html
Copyright © 2011-2022 走看看