url - 在 URL 中使用 DB id 的优缺点?

标签 url web-applications url-routing slug

例如:http://stackoverflow.com/questions/396164/exposing-database-ids-security-riskhttp://stackoverflow.com/questions/396164/blah-blah 加载相同的问题。

(我猜这是 Questions 表的 DB id?这是 ASP.NET 中的标准吗?)

在您的网络应用中使用这种方案的优缺点是什么?

最佳答案

一方面,简单的 ID 通常是连续的,因此很容易猜测并从您的应用程序中检索其他数据。

Load JSON at runtime rather than dynamically via AJAX https://stackoverflow.com/questions/395858/doesnt-matter-what-I-type-here

现在,话虽如此,这也可能被视为一种奖励,因为没有人会把他们的整个安全取决于这样一个事实,即您必须点击链接才能访问您的安全数据,因此数据的易发现性可能很好。

但是,有一点是您在某个时候要重新索引您的数据库,如果没有其他原因搜索引擎仍然有旧链接,那么让旧 url 无效的东西是不好的。

另外,在 SO 上使用这样的链接到其他问题是很正常的,所以如果他们在某个时候想要重新索引并因此重新编号(或移动到 guid 的),他们仍然必须保留旧结构并且身份证。

现在,这是否可能发生或需要?可能不会。

我不会太担心它,只需构建您的安全性,就好像您的应用程序的每个入口点都是已知的,应该没有问题。

关于url - 在 URL 中使用 DB id 的优缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407120/

相关文章:

javascript - 用于显示索引 View 中页面的下 zipper 接 Rails

url - 单个嵌入 URL 中的多个 YouTube 视频

http - 没有 "http|https"的网址

url - Greasemonkey 脚本自动修改具有特定 id 值的 URL

java - 在 Swing 小程序中使用的套接字

没有名字的 ASP.NET 网页,比如 stackoverflow?

python - 为什么错误处理程序不处理 Python/Flask 中包含尖锐 ("#") 登录的不存在的 URL

angular - 共享混合移动应用程序和桌面 Web 应用程序的代码

javascript - 使用 Backbone.js 时是否必须使用后端?

javascript - 使用 pushState 为 Backbone SPA 配置 node express