如何保证$ _POST的PHP没有引用和其他东西

时间:2011-08-14 16:33:14

标签: php tinymce

我有tinyMCE编辑器,它将数据传递给php处理文件。

如果我使用$variable=$_POST(['tinyMCE_textarea']);一切正常。 但是我想要保护它,所以输入一些数据到textarea的用户不会有任何不好。

当我使用$variable=mysql_real_escape_string($_POST(['tinyMCE_textarea']));时 结果会因一些\"符号而受到严重破坏。那么如何在不更改变量的情况下添加最大安全性呢?

4 个答案:

答案 0 :(得分:4)

TinyMCE能够清理数据,但是不要依赖客户端的东西是至关重要的。

要保护数据库的数据,请使用mysql_real_escape_string()。结果旨在与mysql一起使用,而不是用于显示。

要保护要显示的数据,请使用htmlspecialchars()功能。 htmlentities()也有效,但会转换所有适用的实体,所以为了安全起见,你只需要htmlspecialchars()。

所以简化的图片是

.// Insert to database
mysql_query("INSERT INTO data (content) VALUES ('" . mysql_real_escape_string( $_POST['tinyMCE_textarea'] ) . "')");

.// Display to user - doesn't matter whether the data is from post or database
echo htmlspecialchars ( $_POST['tinyMCE_textarea'] );

答案 1 :(得分:1)

使用准备好的声明或PDO 使用htmlentities()或隐藏atleast'<'和'<' '''到'& gt;“等等..

答案 2 :(得分:0)

请记住在输出之前逃避用户输入(例如使用htmlentities())并在将字符串存储到数据库之前转义该字符串。

答案 3 :(得分:0)

使用SQL参数绑定,您可以安全地进行任何注入。