2014-11-01 90 views
0

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

甚至stackoverflow.com过滤不了。在任何评论中试用html评论标签。

+0

应当指出的是,让人们无限制HTML注释是一个XSS漏洞。 – 2014-11-01 03:09:45

回答

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); 
?>