2016-05-26 79 views
0

我有這種FO現在重定向重定向使用的htmlspecialchars /ヶ輛

Redirect::to(htmlspecialchars('home.php')); 

,但是當我在我的home.php鍵入:/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

它的結果是這樣的: enter image description here

但爲什麼?他們說它會轉換,所以剝削嘗試將失敗,但爲什麼在我的這不是?

回答

0

htmlspecialchars將特殊字符編碼爲其參數所傳遞的字符串中的HTML等效字符。 代碼

Redirect::to(htmlspecialchars('home.php')); 

只編碼字符串home.php,並把它傳遞給Redirect::To - 功能和對整個頁面的輸出不使用用htmlspecialchars。

爲了解決這個問題,你必須使用它在每個輸出home.php這樣的:

<?php 
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES); 
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt; 
?> 

(實例:http://php.net/htmlspecialchars

+0

非常感謝你 – phew