php中的HTML注释标记输入验证

时间:2014-11-01 02:57:16

标签: php laravel

我有一个表单,用户可以在文本框中填写注释。稍后我在页面上显示相同的字段。 在测试时我尝试插入HTML注释标记作为注释。 当我显示页面时,由于html注释标记而弄乱了。 我正在进行输入验证但不能阻止所有符号。 我错过了一些安全措施吗?

即使stackoverflow.com也没有对其进行过滤。在任何评论中尝试html评论标记。

1 个答案:

答案 0 :(得分:3)

您可以使用htmlentities($string)htmlspecialchars($string)对输出进行编码,以便对html代码进行编码,而不是将原始html写入页面。

<强>用htmlspecialchars()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

<强>ヶ辆()

<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>