exec-6ren">
gpt4 book ai didi

javascript - 如果潜在的攻击者知道我的数据库中的列名称,他可以做什么

转载 作者:行者123 更新时间:2023-11-28 15:38:38 25 4
gpt4 key购买 nike

我正在尝试使用以下代码将数据从数据库发送到客户端:

在服务器端:

$prep = $pdo->prepare("SELECT * FROM user WHERE id=?");
$prep->execute([$_POST['id']]);
$user = $prep->fetch();
echo json_encode($user);

客户端

$.ajax({
url : '/path/to/myaction',
data : {id : id},
complete : function(data){
console.log(JSON.parse(data));
}

});

结果类似于:

{id : 101,name : "Fudatura",birthdate : "1995/02/03",email : "fudatura@gmail.com"}

一切都很好。我只是有点担心发布列结构。这是安全问题吗?我需要担心这个吗?

最佳答案

问题是:如果潜在攻击者知道数据库中的列名称,他可以做什么?

...

希望没什么。这只是任意的名称。谁在乎这些名字是什么?这本身仍然无法让任何人访问他们不应该访问的任何内容。

话虽如此,如果您的应用程序中存在漏洞,确实允许某人访问他不应该访问的内容,例如SQL 注入(inject)漏洞,了解数据库结构可以加快利用该漏洞进行严重破坏的速度。但是,仅仅混淆列名不会增加任何实际的安全性,它可能只会稍微减慢攻击者的速度,并迫使他们在黑暗中摸索更长时间。

参见this very nice walkthrough从攻击者的 Angular 来了解攻击的可能性。

底线是:不要打扰,它只会让你自己变得不必要的困难,而实际上并没有增加任何实际的安全性。你真正的弱点在其他地方。

关于javascript - 如果潜在的攻击者知道我的数据库中的列名称,他可以做什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24694665/

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