将我的模型ID放入表单是否安全?

时间:2013-11-22 17:54:14

标签: ruby-on-rails security rails-models

我记得有人在某些评论中说过,将模型记录的ID暴露给网页是不安全的。我尝试了一些解决方法,但找不到任何具体的文档。

有人知道这是为什么以及是否应该避免吗?它是如何避免的?

2 个答案:

答案 0 :(得分:3)

黑客唯一可以使用ID做的就是在你的数据库中查找它,如果他们能够做到这一点,你无论如何都已被冲洗了。这就是为什么这些ID被称为“虚构”,因为它们与现实中的任何其他内容无关,例如社会安全号码。

有时您应该(有时不应该)将ID放入URI - http://example.com/myController/42。如果您这样做,请保护您的页面,以便未经授权的用户无法轻易更改号码并查看他们可以找到的记录。但是无论如何你都需要这种安全性,即使你使用“slug”来查找记录,因为用户可以四处寻找不同的slu ..不使用/ 42的主要原因是URI是你的可用性信封的一部分,它们应该有文化和用户友好。

我始终将数据库ID放在HTML ID中,以使其唯一,例如<input type="text" name="username" id="username_42" />。那仍然是安全的。

答案 1 :(得分:2)

不是。在此问题中,您的用户ID位于您名称中的链接,而问题ID就在URL中。唯一不安全的是,如果你允许那些知道ID但不应该有权访问你不希望他们做的事情的人。

您的应用程序内置了安全性,而不是您是否显示模型的ID。