簡體   English   中英

使用htmlspecialchars / htmlentities重定向

[英]redirects using htmlspecialchars/htmlentities

我現在有這種fo重定向

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

但是當我在home.php上鍵入此代碼時: /%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

結果如下: 在此處輸入圖片說明

但為什么 ? 他們說它將被轉換,從而使利用嘗試失敗,但是為什么在我看來卻沒有?

htmlspecialchars使用參數傳遞的字符串將特殊字符編碼為它們的HTML等效字符。 您的密碼

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

僅編碼字符串home.php並將其傳遞給Redirect::To home.php ,而不在整個頁面的輸出上使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM