我有tinyMCE编辑器,它将数据传递给php处理文件。
如果我使用$variable=$_POST(['tinyMCE_textarea']);
一切正常。
但是我想要保护它,所以输入一些数据到textarea的用户不会有任何不好。
当我使用$variable=mysql_real_escape_string($_POST(['tinyMCE_textarea']));
时
结果会因一些\"
符号而受到严重破坏。那么如何在不更改变量的情况下添加最大安全性呢?
答案 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参数绑定,您可以安全地进行任何注入。