小弟是一个新手目前自学写一个会员资料目前会员ID是用主Key累加过年前突然想到若是如此不是很容易被人猜到因此想请问各位先进对于会员ID应该要怎么规划会比较好,不容易被猜到?

4 个回答

  • 旧至新
  • 新至旧
  • 最高Like数

9

Ray

iT邦大神 1 级 ‧ 2025-02-04 11:23:16

  1. 会员 ID 为何会被猜到? 怎么猜?
  2. 被猜到后, 会有哪些风险?

你可以先列一下各种情境, 看看被猜到之后的风险有多大? 再来讨论要花多少成本处理?

5

㊣浩瀚星空㊣

iT邦大神 1 级 ‧ 2025-02-04 13:14:23

一般来说,对于ID会不会被猜到。其实真的不用太在意。
因为一般请求来说如果不是TOKEN模式的情况下。

很多情况都是直接送对应身份ID的。
所以这样的值本身就可以看到。
所以要用流水号、随机号还是UUID。本身并不是很重要。
毕竟看的到的情况下。你怎么改也没用。

当然了。流水号而言。的确也是相对的容易被猜到。
但一般来说并不会对它下手。而是可能採用其它方式来处理。
或是本身看到或知道也无所谓的情况。

我个人大多还是使用自动编号而定。
不过一般在POST或是GET的情况下。能不利用ID就不利用。
我是使用token JWT 的方式。
所以个人资料的对应,大多无需给ID来处理。

1

kawa0710

iT邦研究生 4 级 ‧ 2025-02-05 09:13:04

「会员ID」除了登入以外,还会用来查询吗?
如果会,用「有序」数字或「有序」GUID能让查询效能比较好。
如果不会,GUID是最优解。


以上是练习场景的回答,如果是真的放到Server上的APP还考虑:

  • 网站传送资料不要把「会员ID」放在网址上并採用HTTPS传输。
  • 「会员ID」如果要在公网环境传输或资料交换至少要做AES加解密。
  • Web App採用第三方登入(FB/Google/Line/Microsoft, ..., etc.),「会员ID」只在登入流程(第三方登入系统和你的Web App通讯)使用。

0

zivzhong

iT邦研究生 4 级 ‧ 2025-02-06 11:39:37

使用 Snowflake ID(类似 Twitter 的 Snowflake 演算法)
https://igouist.github.io/repost/2024/01/0116-snowflake/