gpt4 book ai didi

php - 高效安全的查询思路——mysql

转载 作者:行者123 更新时间:2023-11-29 13:36:29 26 4
gpt4 key购买 nike

假设我想创建一个登录查询:

$query ="SELECT * FROM userstable WHERE uName='".$userName."' AND pass='".$password."' ";
$result = mysql_query($query);

$num = mysql_numrows($result);
if ($num == 0) {
echo "wrong detiales";
}
else
{
echo "in";

但是这样,客户就可以访问并将他的数据放入我的查询中......我不喜欢它...为什么要授予客户端从我的数据库获取数据的权限?

问题:将数据放入数组中,然后搜索数组而不是搜索查询是否健康?它可能会慢一点(假设我没有很多记录)。即使慢一点,会不会更安全?

还有建议吗?代码示例?

10x,(顺便说一句,我非常喜欢这个网站!)

最佳答案

will it be healthy to put my data in an array, and then search the array instead of searching the query?

这会破坏数据库的整体用途。其主要目的是为您提供所需的唯一数据,并在内部进行所有数据挖掘。这就是重点。

所以,这是 Not Acceptable 解决方案。尽管安全,但它绝对低效且不可靠。

幸运的是,已经有一种安全运行查询的正确方法 - 准备好的语句。您可以在 famous question 中读到它们。并从PDO tag wiki获得更多实用细节

也就是说,你必须成功

$query = "SELECT 1 FROM userstable WHERE uName=? AND pass=?";
$stmt = $pdo->prepare($query);
$stmt->execute(array($userName, $password));
$found = $stmt->fetchColumn();
if (!$found)
{
echo "wrong detiales";
}
else
{
echo "in";
}

关于php - 高效安全的查询思路——mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18661252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com