gpt4 book ai didi

c# - 避免 Uris 上的数据库信息

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:05 24 4
gpt4 key购买 nike

到目前为止,在我的 MVC 应用程序中,每次我想要获取资源时,我都会在 URI 中包含数据库 ID。

示例:想象一个有产品的应用程序,其中一个产品的 ID 为 1,我可以访问 uri products/1

上的产品详细信息>

然而,这可能是一个问题,想象 id 可能会改变。即使你争辩说 id 是主键并且它不会改变,用户仍然可以知道 1 实际上是产品 id 并且它用于访问数据库。这可能会带来安全问题吗?尽管如此,uri 与数据库的结构之间存在依赖关系。

(如何)我可以制作一个不依赖于数据库的 uri 并仍然访问该资源?

最佳答案

只需在数据库表中添加一个唯一的键字段。当您查找数据时,通过该字段而不是 ID 选择您的行。不,这实际上并没有更安全,但如果您愿意,这很容易做到。这样做的一个有效原因是为了漂亮的 URL。

更新:

将任何功能放在网站上本质上不如不放在网站上安全。您基本上是在问,“提供从网络引用我的数据库中特定项目的能力是否不太安全?”。答案是肯定的,但这并不意味着你不应该这样做。这意味着如果你想这样做,你需要小心并确保你的网站是安全的。它知道试图访问该资源的人就是他们声称的那个人吗?如果确实如此,并且如果我们决定这意味着他们应该获得访问权限,那么我们可以说它是安全的。访问资源的能力是一个特性;不是安全漏洞。

关于c# - 避免 Uris 上的数据库信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057315/

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