Php 使用htmlspecialchars防止恶意HTML注入
我一直在提到某个网站关于如何使用htmlspecialchars来防止恶意代码注入,但我现在比以前更困惑了。假设黑客在文本框中输入以下内容:Php 使用htmlspecialchars防止恶意HTML注入,php,html,security,hyperlink,code-injection,Php,Html,Security,Hyperlink,Code Injection,我一直在提到某个网站关于如何使用htmlspecialchars来防止恶意代码注入,但我现在比以前更困惑了。假设黑客在文本框中输入以下内容: <a href="http://nastywebsite.com">Nasty Website</a> (如果对上述实体进行解码,它们将显示为:讨厌的网站) 假设黑客已将上述代码插入在线调查的FIRST_NAME文本框,因此恶意代码将与“FIRST_NAME”属性
<a href="http://nastywebsite.com">Nasty Website</a>
(如果对上述实体进行解码,它们将显示为:讨厌的网站)
假设黑客已将上述代码插入在线调查的FIRST_NAME文本框,因此恶意代码将与“FIRST_NAME”属性关联。假设此在线调查的所有者希望通过以下代码防止HTML注入:
<?php
$first_name = $_POST['first_name'];
$first_name = htmlspecialchars( $first_name );
echo $first_name;
?>
而不是超链接。如果用户看到的是实体而不是超链接,他就无法下载恶意代码。我不明白。用户是否看到实体或超链接?如果不转义字符串,用户将看到:
<a href="http://nastywebsite.com">Nasty Website</a>
如果你逃跑,他会看到:
<a href="http://nastywebsite.com">Nasty Website</a>
Html呈现器将实体解码为字符,而不将其解释为有效标记
如果您不想在输入中使用html标记,可以使用。Waldson,非常感谢您的帮助。你用6行文字简明扼要地解释了一个问题,而我提到的一些网站却无法用60行文字正确解释这个问题!