PHP在表单文本字段中阻止HTML?

时间:2011-01-16 02:07:30

标签: php mysql

我有一个用户输入注释的文本表单字段。然后我使用PHP / MySQL数据库来存储这些条目。如何阻止某人将HTML输入文本字段?

4 个答案:

答案 0 :(得分:6)

您可能正在寻找strip_tags

答案 1 :(得分:5)

不要对文字做任何事情,只需在输入时存储即可。

原因是,您可能要添加看起来像html但实际上不是的内容。例如

  

我正在更新网站错误,我不得不添加一些< br>标记让内容向下移动。

你所做的是将内容存储在数据库中,确保你为了SQL注入目的而逃避数据,然后在输出到浏览器时你应该使用htmlentites这样的内容来逃避:

<div id="notes">
    <?php echo htmlentities($row['note']) ?>
</div>

这样,html标签对实际DOM没有任何影响,因为转义时,DOM中所需的输出应该如下所示:

  

我正在更新网站错误,我不得不添加一些&lt; br &gt;标签,让内容随时移动。

并且用户实际上会将<br>视为纯文本

希望这有帮助。

答案 2 :(得分:0)

如果您计划将数据存储在数据库中,则需要使用mysql_real_escape_string()清除输入以防止SQL注入(http://en.wikipedia.org/wiki/SQL_injection)

答案 3 :(得分:0)

1。过滤输入

首先filter您的输入

  

输入过滤是其中之一   任何应用的基石   安全,独立于   语言或环境。

2。使用PDO

接下来使用PDO预准备语句来使您的SQL查询安全。

  

准备好的声明是预编译的   可以执行的SQL语句   多次通过发送   数据到服务器。它有补充   自动制作的优点   占位符中使用的数据安全   来自SQL注入攻击。