繁体   English   中英

PHP防止在表单文本字段中使用HTML?

[英]PHP prevent HTML in form text field?

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

您可能正在寻找strip_tags

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

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

我正在更新该网站,并且不得不添加一些<br>标签,以使内容向下移动。

shuold要做的是将内容存储在数据库中,以确保出于SQL注入目的转义数据,然后在输出到浏览器时,应使用htmlentites进行转义,如下所示:

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

这样,html标签不会对实际的DOM产生任何影响,因为实际的DOM逃脱了,因此DOM中所需的输出应如下所示:

我正在更新站点,并且不得不添加一些&lt; br &gt; &lt; br &gt; 标签以使内容向下移动。

并且用户实际上会看到<br>为纯文本

希望这可以帮助。

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

1.过滤器输入

首先过滤您的输入

输入过滤是与语言或环境无关的任何应用程序安全性的基石之一。

2.使用PDO

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

预准备语句是预编译的SQL语句,可以通过仅将数据发送到服务器来执行多次。 它具有自动使占位符中使用的数据免受SQL注入攻击的影响的附加优点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM