2010-01-08 130 views
2

我打算让Rails项目的数据库可以公开下载。该数据库包含一个Authlogic用户表,其中包含crypted_pa​​ssword和password_salt字段。这些密码的存储安全程度如何?是否可以通过这种方式公开使用这些密码?或者我应该考虑实现另一种身份验证系统,如OpenID,它不会将密码存储在数据库中?Authlogic密码有多安全?

回答

1

这绝对不是安全共享散列密码,也许你应该尝试拆分您的用户模型弄成用户配置(用户的公开信息 - 昵称,位置等)和UserAccount,你可以使用进行身份验证。那么你可能可以共享除帐户之外的所有内容。或者可能考虑实施某种API,其他人可以使用这些API从您的站点获取数据,而不是发布整个数据库。

2

无论安全级别和加密如何,共享这绝对不是一个好主意。即使它非常安全,至少你会泄露用户数据,这听起来不像你的用户可能会感到高兴的东西。如果它不是完全安全的(更可能) - 假设,在authlogic中存在一个尚未被发现的关键弱点?

比对不起更安全。如果你愿意的话,分享其余的内容,但保留你的用户表和相关数据!

+0

感谢您的意见。我能想到的唯一的其他选择是需要OpenID身份验证。该应用程序将类似于维基百科中,我希望给用户分叉整个项目如果需要的话和别的地方设立站点的选项。假设用户意识到他们的OpenID将被共享,你认为这是最好的方法吗? – 2010-01-08 09:01:14

2

我建议您从任何您计划共享的数据库中删除涉及用户身份验证(电子邮件,密码,盐和密钥,开放ID网址)的任何字段,否则当有人恶意获取时可能会发现自己处于痛苦的世界持有它。

1

我认为在您公开的数据库中不包含用户表是明智的,无论您使用的是何种身份验证系统。使用authlogic的优点之一是可以实现多种无痛认证方式。使用传统的注册,OAuth,OpenID或RPX无关紧要,所有这些方法都能够将密码之外的个人信息吸引到用户模型中。用户可能不会觉得DOB /第一个&姓名/位置信息被公开。