如何在不使用引号和其他内容的情况下保护 php 的 $_POST

发布于 2024-11-29 09:47:06 字数 297 浏览 1 评论 0原文

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

如果我使用 $variable=$_POST(['tinyMCE_textarea']); 一切正常。 但我想保护它,这样在文本区域中输入一些数据的用户就不会产生任何不好的结果。

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

I have tinyMCE editor which is passing data to php processing file.

If I use $variable=$_POST(['tinyMCE_textarea']); everything is ok.
But I want to secure it so nothing bad will come from user who entered some data into textarea.

And when I use $variable=mysql_real_escape_string($_POST(['tinyMCE_textarea']));
The result becomes dammaged with some \" signs. So how can I add maximum security without changing the variable ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

落在眉间の轻吻 2024-12-06 09:47:07

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'] );

TinyMCE is able to clean up data, however it is critical that you don't rely on client-side stuff.

To secure data for database, you use mysql_real_escape_string(). The result is intended for use with mysql and not for display.

To secure data for display, you use the htmlspecialchars() function. htmlentities() also works but would convert all applicable entities, so for security you only need htmlspecialchars().

So the simplified picture is

.// 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'] );
╰つ倒转 2024-12-06 09:47:07

使用准备好的语句或 PDO。
使用 htmlentities() 或至少隐藏 '<'和“<” '"' 到 "& >”等等..

use prepared statement or PDO.
use htmlentities() or covert atleast '<' and '<' '"' to "& gt;" and so ..

征﹌骨岁月お 2024-12-06 09:47:07

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

Just remember to escape the user input before outputting (using for example htmlentities()) and escape the string before storing it in your database.

小糖芽 2024-12-06 09:47:07

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

Use SQL parameter binding, and you are safe from any injection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文