我有一个表单,用户可以在文本框中填写注释。稍后我在页面上显示相同的字段。 在测试时我尝试插入HTML注释标记作为注释。 当我显示页面时,由于html注释标记而弄乱了。 我正在进行输入验证但不能阻止所有符号。 我错过了一些安全措施吗?
即使stackoverflow.com也没有对其进行过滤。在任何评论中尝试html评论标记。
答案 0 :(得分:3)
您可以使用htmlentities($string)
或htmlspecialchars($string)
对输出进行编码,以便对html代码进行编码,而不是将原始html写入页面。
<强>用htmlspecialchars()强>
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
?>
<强>ヶ辆()强>
<?php
$str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>