mysql_real_escape_string足以防SQL注入吗?

发布于 2024-10-02 05:23:53 字数 150 浏览 7 评论 0 原文

PHP手册中有这样一段注释:

注意:如果不使用该功能 转义数据,查询容易受到攻击 SQL注入攻击。

这足以防sql注入吗?如果没有的话,能否给出一个例子以及一个好的防sql注入的解决方案?

In PHP Manual, there is a note:

Note: If this function is not used to
escape data, the query is vulnerable
to SQL Injection Attacks.

Is this enough to anti sql injection? If not, could you give an example and a good solution to anti sql injection?

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

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

发布评论

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

评论(3

绝影如岚 2024-10-09 05:23:53

mysql_real_escape_string 通常足以避免 SQL 注入。但这确实取决于它是否没有错误,即存在一些未知的小机会它容易受到攻击(但这尚未在现实​​世界中显现出来)。在概念层面上完全排除 SQL 注入的更好替代方案是准备好的语句。这两种方法完全取决于您是否正确应用它们;也就是说,如果你把事情搞砸了,两者都不会保护你。

mysql_real_escape_string is usually enough to avoid SQL injection. This does depend on it being bug free though, i.e. there's some small unknown chance it is vulnerable (but this hasn't manifested in the real world yet). A better alternative which completely rules out SQL injections on a conceptual level is prepared statements. Both methods entirely depend on your applying them correctly; i.e. neither will protect you if you simply mess it up anyway.

一花一树开 2024-10-09 05:23:53

据我所知,这是避免 SQL 注入攻击的可靠方法。

As far as i know this is a solid way to avoid SQL Injection attacks.

dawn曙光 2024-10-09 05:23:53

最好的解决方案是 PDO

如果您使用传统的 mysql_query 然后通过 mysql_real_escape_string() 运行所有数据就足够了。

The best solution is PDO.

If you're using the traditional mysql_query then running all of your data through mysql_real_escape_string() is enough.

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