Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 需要对显示在<;textarea>;?_Php_Html_Textarea - Fatal编程技术网

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()
电话之前,我认为您应该没事。