将db项的ID作为url参数传递是否安全?

时间:2015-10-03 18:44:34

标签: security variables url frontend

在通过互联网发表我的作品之前,我在这里向你们汇报一下我所建造的作品是否足够安全。

我的客户端按项目ID查询数据库;然后它将URL上的ID传递给第二页。 所以你会有类似的东西:

 mypage.com/pagename?q=#numericID

#numericID是项目的ID。 我想知道如果API仅在相同的域下被允许,该网站是否足够安全以防止爬行,或者我是否应该遵循另一种更正统的做法:cookie?将应用程序重新分解为单页而不是两页 - 首先用于查询,第二用于结果? ...?

请告知如何重新构建我的问题,因为服务器的安全性对我来说完全是一件新事物,而且我不确切知道应该看哪个主题。

1 个答案:

答案 0 :(得分:2)

如果您在两个网站之间传递数字ID,则任何人都可以在第二个网站上尝试其他ID,看看他们得到了什么。对于任何可预测的ID都是一样的。

这是否是一个问题,您可以确定,例如,如果最终用户尝试使用不同的ID,那么使用该ID显示不同产品的产品网站可能会很好。或者,如果ID用于定义当前登录的用户,那么您将遇到一个重大问题。

后一种情况的简单解决方案是使用随机ID。例如UUID's,其格式类似于

1176399b-0dfd-4bd1-9266-8d72abb90bd3

为要跟踪的每个项目分配不同的UUID,并确保两个服务器都知道它们是什么。有人猜测或爬行替代UUID是非常困难的。但是,恶意最终用户可能会随着时间的推移而学习它们。

除此之外,下一步是3D安全类型系统,其中传递给第二台服务器的UUID只有一次,随后在安全通道上在服务器2和服务器1之间进行验证。