0

实际上,http://mydomain.fr/user/1我的 Web 应用程序中有这个 url。我认为这不是很安全

我会隐藏 auto_increment 的 id。

无法做到这一点:

http://mydomain.fr/user/1
http://mydomain.fr/user/2
http://mydomain.fr/user/3
http://mydomain.fr/user/4
http://mydomain.fr/user/[...]

不知道用什么技术...

  • 散列存储在主键旁边的 MD5
  • UUID/GUID

我使用 MySQL。

4

4 回答 4

0

您应该根据身份验证限制对 URL 的访问。仅仅让“难以猜测”一个 ID不会阻止某人访问另一个用户的页面,或者,例如,删除一个意外的用户。基本上,除非您提供一些访问控制,否则任何人都可以访问任何 URL。

于 2013-07-10T14:43:16.683 回答
0

我认为为用户生成一个随机的唯一字符串是最好的方法。只需使用 sha1 哈希就可以了。

于 2014-01-22T10:18:29.577 回答
0

没有办法正确隐藏它,您可以使用长随机散列字符串生成唯一 ID,这更难访客。基本上这不会阻止某人访问其他人的 ID。

于 2018-04-29T15:22:17.813 回答
0

OP 可能会担心泄露主键,因为它可能会将信息泄露到存在多少特定资源中。

例如,如果他正在构建一个 Web 应用程序并且有人创建了一个帐户并看到一个 domain.fr/user/23 的 URL,他们将知道他们在一个采用率较低的应用程序上创建了一个帐户。

我的建议是使用上面建议的 GUID 值或限制为唯一的用户名。

如果您使用 GUID,它会看起来很难看,但请确保不要只使用开始部分,因为前 60 位是基于时间戳的,这会大大增加冲突的机会。

如果您使用唯一的用户名,您的 url 将改为 domain.fr/user/username

我知道这很容易在 RoR 上完成。

于 2018-04-29T15:16:56.717 回答