【发布时间】:2013-12-09 10:36:57
【问题描述】:
有些人一直告诉我,我在 mysqli 查询中更新数据的代码非常不安全。实际上,这个网站上有几个人。所以我想知道他们说什么可以保护我下面的代码,所以在更新我的数据库时它是安全的。我想知道如何保护我的 mysqli 查询。
好的,在我的数据库条目代码中,这就是我所做的。首先让我说我总是通过 POST 方法发送以避免浏览器 url 复杂化。
当我得到 POST 数据时,这是我的代码。
$ID = 1;
$DATA = htmlentities(addslashes($_POST['data']));
$FIELD = "lifename";
$DBQUERY = "UPDATE `lifetable` SET `$FIELD` = '$DATA' WHERE `id` = $ID";
$DBRESULT = $MYSQLI->query($DBQUERY);
我目前在我的本地网站上使用它。
如果我已经转义了所有引号、所有斜杠、所有 & 符号(从 javascript 到 ajax)和所有分号,这怎么会不安全?这怎么可能?
那么你能告诉我在向我的数据库中添加信息时应该改变什么吗?
谢谢
PS ...我正在使用mysqli并将继续使用它。谢谢
【问题讨论】:
-
尝试使用 PDO 语句进行 DB 查询。然后你就在保存端了。 php.net/manual/en/intro.pdo.php
-
forums.mysql.com/read.php?52,227585,227585 请阅读这篇文章你可能会在使用 pdo 之后得到一个好主意,因为它很好地抽象了数据库查询而不是供应商特定的函数 mysql 或 mysqli
-
有一种方法可以保护 mysqli,所以你甚至从来没有接近回答我的问题,我的标签特别提到了 mysqli。我在问如何使我的 mysqli 语句更安全。
-
复制标签下投票最多的问题,stackoverflow.com/questions/60174/…