如何在不使用引号和其他东西的情况下保护php的$u POST

如何在不使用引号和其他东西的情况下保护php的$u POST,php,tinymce,Php,Tinymce,我有一个tinyMCE编辑器,它将数据传递给php处理文件 如果我使用$variable=$\u POST(['tinyMCE\u textarea'])一切正常。 但我想保护它,这样就不会有什么坏消息从用户谁输入了一些数据到textarea 当我使用$variable=mysql\u real\u escape\u字符串($\u POST(['tinyMCE\u textarea']) 结果会被一些符号损坏。如何在不更改变量的情况下增加最大安全性?只需记住在输出前转义用户输入(例如使用html

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

如果我使用
$variable=$\u POST(['tinyMCE\u textarea'])一切正常。
但我想保护它,这样就不会有什么坏消息从用户谁输入了一些数据到textarea

当我使用
$variable=mysql\u real\u escape\u字符串($\u POST(['tinyMCE\u textarea'])

结果会被一些符号损坏。
如何在不更改变量的情况下增加最大安全性?

只需记住在输出前转义用户输入(例如使用
htmlentities()
)并在将字符串存储到数据库之前对其进行转义。

使用SQL参数绑定,您可以避免任何注入。

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

要保护数据库的数据,请使用
mysql\u real\u escape\u string()
。结果用于mysql,不用于显示

为了保护数据的显示安全,您可以使用
htmlspecialchars()
函数。htmlspecialties()也可以工作,但会转换所有适用的实体,因此为了安全起见,您只需要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'] );

使用准备好的语句或PDO。

使用htmlentities()或covert至少“如何”保护”“是吗?您是在试图防范吗?是的,还有其他可能的威胁我建议将值存储在变量中,这样您就不会直接处理$\u POST变量了谢谢!另一个问题,你建议我所有来自用户的东西,以你写的方式进入数据库?我的意思是它工作得很好,但在更新或将数据插入mysql时,向每个变量添加mysql\u real\u escape\u字符串是否正确?请编写一个简单的示例,从通过POST获取变量到将其存储到mysql。但是用最可靠的方法,简单易行,当然安全,大卫。所有进入数据库的用户输入文本都应该转义。某些数据可以通过强制转换为int/double或通过正则表达式进行验证,但在其他情况下,转义是必需的。正如kjetilh所说,为了可读性,您可能首先希望将post存储到一个变量中。