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>