【问题标题】:Simple way to change mysql_query() to MySQLi or PDO or more secure method? [duplicate]将 mysql_query() 更改为 MySQLi 或 PDO 或更安全方法的简单方法? [复制]
【发布时间】:2015-04-14 19:09:18
【问题描述】:

我对 PHP 还是很陌生,我正在尝试在使我的表单安全方面了解更多信息,以便我的数据库更难通过 SQL 注入等搞砸。我们公司现在的 web 程序员/php 人在短时间内辞职了,所以我的老板暂时把我安置在 php 程序员的位置上,只在前一个程序员的指导下接受了一周的培训(我做了很多 html 和 css 工作,但没有 php之前),直到他们找到真正的替代品。

无论如何,我读到使用mysql_query() 是一个贬值的函数,应该避免使用它,因为该方法很容易受到攻击。我看到我的两个选择是现在使用 PDO 或 MySQLi。作为 PHP 的新手,我无法弄清楚我需要做什么来转换我当前使用的代码(它从请求中发送信息到网站上的报价单并将其存储在数据库中,以防电子邮件出现问题)通过 PDO 或 MySQLi 将数据发送到数据库的更安全的方法。

我正在使用的当前代码行是:

    $query = mysql_query("insert into request_for_quote(rfq_company_name, rfq_name, rfq_email, rfq_phone, rfq_end_user) values ('$rfqCompanyName', '$rfqName', '$rfqEmail', '$rfqPhone', '$rfqEndUser')");

这主要由 $_POST 变量提供支持。

                $rfqName = mysql_real_escape_string($_POST['rfq_name']);
                $rfqEmail = filter_var($_POST['rfq_email'], FILTER_VALIDATE_EMAIL);
                $rfqPhone = mysql_real_escape_string($_POST['rfq_phone']);
                $rfqCompanyName = mysql_real_escape_string($_POST['rfq_company_name']);
                $rfqEndUser = mysql_real_escape_string($_POST['rfq_end_user']);

现在,我的代码可以满足我的需要,它似乎极易受到数据库攻击,我想学习如何解决这个问题,但似乎我在网上找到的所有示例都没有使用设置“将XYZ变量作为值ABC插入表列。

是否有任何简单的更改可以使我的数据库提交查询更安全?

【问题讨论】:

  • + 感谢您的努力,但这里有很多子问题,最终相当广泛。因此,这个问题很可能会被关闭。
  • 你现在做的事情在短期内是ok的。除非您简单地设置它,否则迁移到 MySQLi 或 PDO 可能有点麻烦。 This article 将帮助您确定最适合您的 API。
  • mysql_query 不是问题,完全正确。问题在于使用不受信任的变量构建 SQL 语句。这个问题应该让你开始:stackoverflow.com/questions/60174/…

标签: php mysql pdo mysqli sql-injection


【解决方案1】:

几 (6) 个月前,我写了一个类似问题的答案,但我现在找不到。

  • 搜索和替换。

找到mysql_ 并替换为mysqli_,替换("SELECT... 并插入括号后执行($dbLinkIdentifier, "SELECT... 其中$var 是与数据库的连接。这是程序化 MySQLi,

初始链接$dbLinkIdentifiermysqli_connect() 构造,因为您可以识别多个数据库连接,每个连接都有自己的$var

这是一个程序 MySQLi 格式/布局。如果您想迁移到 OO MySQLi,那么结构上会稍微复杂一些,但总体上会更好。

【讨论】:

    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 2020-01-29
    • 2012-08-31
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多