gpt4 book ai didi

php - 使用函数访问数据库值安全吗?

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

我对 PHP 和 PDO 都很陌生,所以我不完全知道除了 SQL 注入(inject)之外访问数据库时要避免(和包括)什么。 (仅供引用,在下面的示例中,表“用户”还包括密码),但是使用如下函数访问数据库以获取信息是否安全?是否容易受到攻击?

如果您不明白我为什么这样做,那是因为我发现它更快,而且链接表格时会更容易:)

<?php
require("access/common.php");
function getval($username, $column, $table, $datab){
$query = "
SELECT
id,
username,
email
FROM ".$table."
WHERE
username = :username
";
$query_params = array(
':username' => $username,
);
try
{
$stmt = $datab->prepare($query);
$result = $stmt->execute($query_params);
}
catch(PDOException $ex)
{
die();
}
$row = $stmt->fetch();
if($row)
{
return $row[$column];
}
}
echo getval("USERNAME", "email", "users", $db);
?>

最佳答案

你问的问题非常开放。最大的攻击向量始终是您对用户输入所做的操作(用户可以通过 $_GET 或 $_POST 变量提交到您的应用程序/网站的任何内容)。当然,PHP 语言结构不存在安全威胁,例如。功能。

在您的示例中,我可以看到您正在绑定(bind)“:username”参数,但没有绑定(bind)“:table”参数,如果您接受未经 sanitizer 的用户输入并将其用作“$table”值,则该参数可能是注入(inject)向量.

始终小心如何使用 $_GET 和 $_POST 值...当这变得乏味时,寻找一个框架来使其中的一些自动化。

关于php - 使用函数访问数据库值安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13015496/

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