gpt4 book ai didi

rest - 如何公开 URL 友好的 UUID?

转载 作者:行者123 更新时间:2023-12-04 03:08:17 26 4
gpt4 key购买 nike

您好互联网居民,

我正在阅读一本不错的 database design article关于如何正确生成数据库主键的最终决定是......

So, in reality, the right solution is probably: use UUIDs for keys, and don’t ever expose them. The external/internal thing is probably best left to things like friendly-url treatments, and then (as Medium does) with a hashed value tacked on the end.

也就是说,将 UUID 用于内部目的,如数据库连接,但将友好的 url 用于外部目的(如 REST API)。

我的问题是......您如何为外部目的制作唯一可识别(和友好)的 key ?

我使用过几个 API:Stripe、QuickBooks、Amazon 等,它们似乎直接使用连续的 ID 来检索客户、报告 ID 等信息。这让我想知道将 UUID 作为安全风险公开是否有点夸张 b/c 在理论上你应该能够在你的查询中附加一个 where 子句。

SELECT * FROM products where UUID = <supplied uuid> AND owner/role/group/etc = <logged in user>

后续问题是:如果公开主键,人们如何在数据库环境中有效地限制对该资源的访问?为数据库行分配所有者?

对设计响应感兴趣。

进一步阅读的潜在相关帖子:

Should I use UUIDs for resources in my public API?

最佳答案

将您的内部 ID 暴露给外部不是一个好主意。您应该对它们进行编码(使用某种算法)或查找表格。

此外,不要将用户(或 URL)提供的参数附加到您的 SQL 查询(UUIDS 或非 UUIDS),这很容易被 SQL 注入(inject)。为此使用参数化 SQL 查询。

关于rest - 如何公开 URL 友好的 UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47103793/

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