iT邦幫忙

3

請問會員ID大家會用主key自動增加還是會用亂數產生呢?

  • 分享至 

  • xImage

小弟是一個新手
目前自學寫一個會員資料
目前會員ID是用主Key累加
過年前突然想到若是如此不是很容易被人猜到
因此想請問各位先進
對於會員ID應該要怎麼規劃會比較好,不容易被猜到?

看更多先前的討論...收起先前的討論...
Yaowen iT邦研究生 3 級 ‧ 2025-02-04 11:26:39 檢舉
用 GUID
如果有疑慮,建議樓主可以去找一般編碼原則規範看看編碼原則都是怎麼變動的
還有如果有使用SSO登入,基本上ID真的不重要,你的硬體再強不會比 GOOGLE 或 MS 或 FB 或 LINE 強吧
如果再綁 MFA 的話,你用第三方公證的驗證方式,對登入做多重驗證,會員ID根本就不重要
當然,本邦還是有使用,所以 ... CSS 玩的好會有很好玩的事情發生
望空 iT邦新手 1 級 ‧ 2025-02-04 11:34:53 檢舉
用固定規則去hash你的主ID即可
WUcheap iT邦研究生 4 級 ‧ 2025-02-04 15:30:09 檢舉
登入是用會員ID嗎? 應該不是吧,那被猜到又不會怎麼樣
除非你還有其他用途,且可以繞過權限檢查機制
淺水員 iT邦大師 6 級 ‧ 2025-02-04 18:31:12 檢舉
如果真的在意
曾經在網路上看過一個做法是把主鍵用 AES 加密當作擾亂順序
相較於雜湊,優點是不會發生碰撞
用autoincrease int但不當ID用
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
9
Ray
iT邦大神 1 級 ‧ 2025-02-04 11:23:16
  1. 會員 ID 為何會被猜到? 怎麼猜?
  2. 被猜到後, 會有哪些風險?

你可以先列一下各種情境, 看看被猜到之後的風險有多大? 再來討論要花多少成本處理?

5

一般來說,對於ID會不會被猜到。其實真的不用太在意。
因為一般請求來說如果不是TOKEN模式的情況下。

很多情況都是直接送對應身份ID的。
所以這樣的值本身就可以看到。
所以要用流水號、隨機號還是UUID。本身並不是很重要。
畢竟看的到的情況下。你怎麼改也沒用。

當然了。流水號而言。的確也是相對的容易被猜到。
但一般來說並不會對它下手。而是可能採用其它方式來處理。
或是本身看到或知道也無所謂的情況。

我個人大多還是使用自動編號而定。
不過一般在POST或是GET的情況下。能不利用ID就不利用。
我是使用token JWT 的方式。
所以個人資料的對應,大多無需給ID來處理。

1
kawa0710
iT邦研究生 5 級 ‧ 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/

我要發表回答

立即登入回答