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>
相關文章
相關標籤/搜索