CodeIgniter 中的 MySQL 安全性

发布于 2024-12-17 08:41:37 字数 318 浏览 0 评论 0原文

我是 CodeIgniter 的新手,但对 PHP 并不陌生,我想知道我需要在 CodeIgniter 中做什么才能确保所有查询的安全。

通常,我只是在查询中使用的每个变量上使用 mysql_real_escape_string() (标准 PHP),但我观看了 CodeIgniter 上的教程,其中作者没有转义变量,只是做了标准插入就像下面这样:

$this->db->query("SELECT * FROM Users WHERE Username = ?", array($username));

哪种方式是正确的?

I am new to CodeIgniter, but not new to PHP, and I was wondering what I needed to do in CodeIgniter in order to make all of my queries secure.

Usually, I just use mysql_real_escape_string() on each variable used in the query (standard PHP), but I watched a tutorial on CodeIgniter, where the author didn't escape the variable and just did a standard insert like the following:

$this->db->query("SELECT * FROM Users WHERE Username = ?", array($username));

Which way is correct?

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

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

发布评论

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

评论(1

锦上情书 2024-12-24 08:41:37

您的示例执行 参数绑定

正如您可以在上面链接的最后一段中阅读的那样,绑定自动转义传递给查询的值:

使用绑定的第二个好处是这些值是
自动转义,产生更安全的查询。你不必
记得手动转义数据;引擎会自动执行此操作
你。

Your example does parameter binding

As you can read in the last paragraph of the above link, binding automatically escapes the value passed to query:

The secondary benefit of using binds is that the values are
automatically escaped, producing safer queries. You don't have to
remember to manually escape data; the engine does it automatically for
you.

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