【发布时间】:2011-10-05 17:24:11
【问题描述】:
我正在为我的 Web 应用程序使用 SSL。使用唯一标识符作为敏感数据的主键会增加任何额外的安全性,还是只会减慢速度?
【问题讨论】:
标签: sql security web-applications ssl
我正在为我的 Web 应用程序使用 SSL。使用唯一标识符作为敏感数据的主键会增加任何额外的安全性,还是只会减慢速度?
【问题讨论】:
标签: sql security web-applications ssl
也许,就像纸板锁比纸锁更安全一样。
如果您通过默默无闻地使用安全性,那么阻止某人看到他们不应该看到的东西的唯一原因是他们不知道主键值,那么是的。它增加了一点安全性。
也就是说,您的努力会更好地应用于通过肯定的方式锁定数据,而不是依靠用户不猜测 ID。默默无闻的安全性特别容易受到嗅探攻击。
【讨论】:
如果您想知道是否使用 int 与 GUID 进行 PK,Jeff Atwood 有一篇关于该主题的博文可能对您有所帮助。
http://www.codinghorror.com/blog/2007/03/primary-keys-ids-versus-guids.html
正如大卫所说,为了可读性,整数键比 URL 更好。特别是如果您认为有人会发推文或链接到帖子或个人资料。 www.site.com/users/233 比 www.site.com/users/C87FC84A-EE47-47EE-842C-29E969AC5131 更容易阅读/输入/p>
但它确实不会增加太多“安全”优势。
【讨论】:
www.site.com/users/233,而是使用www.site.com/users/jsmith。
如果您谈论的是在 URL 中可见的内容,那么我会说“是的,它有点更好”。
我这么说的原因是手动操作一个 url 真的很容易,而且只需要一个整数值,你可以很容易地改变它,看看你得到了什么。使用此方法不太可能获得有效的唯一标识符。
也就是说,可以预测唯一标识符,我相信自动化系统能够破解它。您会增加一定程度的复杂性以使您的网站成为不那么有吸引力的目标,但这并不是解决任何问题的完整解决方案。
恕我直言,增加复杂性的权衡是不值得的,除非你保护的东西真的没有那么有价值。
【讨论】: