我有一個簡單的消息傳遞系統。在PHP中編碼,MySQL和Java可能會實現。現在我想確保收件人的ID。目前我使用用戶表的自動增量主鍵(1,2,3)。但這當然是不安全的。因爲每個人都可以猜測,所有其他ID都從1到xxx計數。那麼確保身份證的最佳商業實踐是什麼?在MD5中轉換它(也許用一些密碼文本「myencryptionkey」+ userId - > MD5)? 如果收件人ID很容易重現,垃圾郵件發送者將使用此係統用於他們的目的。BBP:如何在郵件系統中保護數據庫ID?
我認爲這是一個普遍的問題。以及「友誼邀請」。如果每個人都能猜到,如何構建ID,則可以發送大量的友誼邀請。
另一個想法: 什麼是關於用隨機創建的密鑰加密userIds。我生成一個隨機密鑰,將它存儲在會話cookie中。所以每個人都有一個用戶123的其他標識符。所以我需要一個函數來加密和解密一個給定的整數。
如何像Facebook PROTEC其主鍵的網頁?
用GUID表示PHP函數:** uniqid()**? – brill 2011-04-11 12:10:05
當然,MySQL支持在字段上自動生成GUID作爲標識,你不需要自己生成和插入這些GUID。 – 2011-04-11 12:14:39
使用GUID時,請將GUID => ID映射保留在單獨的表中,並使用數字ID保留在所有其他表中。這可以確保只有最小的性能損失(查找GUID => ID的時間),而不必在每次訪問混淆主鍵時都要執行基於字符串的查找。 – ThiefMaster 2011-04-11 12:50:26