假設我經營一個網站,您可以在其中創建貓的圖片。我為每張貓圖片賦予唯一的標識符,以便可以在社交媒體上與 http://catpictures.com/base62Identifier
共享。
我可以為貓圖片賦予順序標識符(例如1,2,3等),但可以輕鬆發現用戶每天創建多少新貓圖片(通過每天返回HTTP 200的最大標識符)。這使我了解了一種常見的策略,即每月從競爭對手那裡訂購產品並註明發票編號。網站訪問量數字與業務收入密切相關,因此我顯然希望將此信息保密。
我正在考慮嘗試的工作:
這聽起來像是哈希算法的工作, 對?問題是通過觀察哈希值,很容易分辨出是哪個算法創建的(md5,crc32等)。擁有彩虹桌的人會簡化這個想法。我可以對標識符[hash(“ salt” +1),hash(“ salt” +2),...]進行加鹽處理,但隨後必須擔心與加鹽處理相關的安全性。還有碰撞檢查。
我的另一個想法是生成一個隨機的字符串,並將其用作數據庫中貓圖片的主鍵(或者我可以對貓圖片數據的前n位進行散列)。這樣,我只需要檢查衝突即可。
是否有一種標準的最佳實踐方法,可以避免通過唯一的標識符URL暴露流量?
編輯:專門尋找一種可以將安全性和適用性很好地結合在一起的解決方案,作為數據庫主鍵或可索引列。