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

PHP阻止表单文本字段中的HTML?,php,mysql,Php,Mysql,我有一个文本表单字段,用户可以在其中输入注释。然后我使用PHP/MySQL数据库来存储这些条目。如何防止有人在文本字段中输入HTML?您可能正在查找您可能正在查找如果您还计划在数据库中存储数据,则需要使用mysql\u real\u escape\u string()清除输入以防止SQL注入(http://en.wikipedia.org/wiki/SQL_injection)如果您还计划将数据存储在数据库中,则需要使用mysql\u real\u escape\u string()清除输入,以

我有一个文本表单字段,用户可以在其中输入注释。然后我使用PHP/MySQL数据库来存储这些条目。如何防止有人在文本字段中输入HTML?

您可能正在查找

您可能正在查找

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

如果您还计划将数据存储在数据库中,则需要使用mysql\u real\u escape\u string()清除输入,以防止SQL注入(http://en.wikipedia.org/wiki/SQL_injection)不要对文本做任何处理,只要在输入文本时将其存储即可

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

我在更快速地更新网站,我不得不添加一些
标签,让内容向下移动一点

您要做的是将内容存储在数据库中,确保您转义数据以用于SQL注入,然后在输出到浏览器时,您应该使用以下内容转义:

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

通过这种方式,html标记不会对实际DOM产生任何影响,因为有转义,DOM中所需的输出应该如下所示:

我在更快速地更新网站,我不得不添加一些
br
标签,让内容向下移动一点

用户实际上会将

视为纯文本


希望这能有所帮助。

不要对文本做任何处理,只要在输入时存储即可

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

我在更快速地更新网站,我不得不添加一些
标签,让内容向下移动一点

您要做的是将内容存储在数据库中,确保您转义数据以用于SQL注入,然后在输出到浏览器时,您应该使用以下内容转义:

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

通过这种方式,html标记不会对实际DOM产生任何影响,因为有转义,DOM中所需的输出应该如下所示:

我在更快速地更新网站,我不得不添加一些
br
标签,让内容向下移动一点

用户实际上会将

视为纯文本

希望这有帮助。

1。滤波器输入 首先是你的意见

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

2.使用PDO 接下来,使用准备好的语句使SQL查询安全

准备好的语句是预编译的语句 可以执行的SQL语句 多次只发送 将数据传输到服务器。它增加了 自动生成 占位符中使用的数据是安全的 来自SQL注入攻击

1.滤波器输入 首先是你的意见

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

2.使用PDO 接下来,使用准备好的语句使SQL查询安全

准备好的语句是预编译的语句 可以执行的SQL语句 多次只发送 将数据传输到服务器。它增加了 自动生成 占位符中使用的数据是安全的 来自SQL注入攻击


因为
strip\u tags()
实际上并不验证HTML,部分或损坏的标记可能会导致删除比预期更多的文本/数据。@RobertPitt:但这比任何打开过的标记都好,所以可以告诉你一点。;-)我从来没有说过任何关于用正则表达式进行解析的事情,我只是指出了一个小问题,即仅仅依靠
strip\u标签
。因为
strip\u标签()
实际上并不验证HTML,部分,或者损坏的标记会导致删除比预期更多的文本/数据。@罗伯特皮特:但这比任何打开过的人都能告诉你的要好。;-)我从来没有说过使用正则表达式进行解析,我只是指出了一个单独依赖
strip\u标记的小问题。