phalcon: 上下文转义

phalcon: 上下文转义php

Phalcon\Escaperhtml

转义特殊的字符api

一:字符转义安全

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

  

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

咱们可使用escapeHtml方法对这些文本进行转义:3d

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

  

二,html属性转义htm

<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的转义blog

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

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

<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 script\3e alert\28 1\29 \3c \2f script\3e \3c a\20 href\3d \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 x\x3d\x27'
</script>
相关文章
相关标签/搜索