繁体   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