我要問的問題只是因爲我很好奇。我認爲我做的是正確的事情,但我想確保它實際上是是正確的。這是關於哈希。這種哈希驗證安全嗎?
我目前正在建設的網站有幾個Ajax編輯組件。首先,未登錄的用戶不能使用這些組件。其次,登錄的用戶只能以自己的名義完成他們的請求。僞造很容易,因爲我發送用戶標識。
我的驗證方法如下。每個用戶在數據庫中都有一列包含隨機信息,如8個字符的隨機字符串。除了用戶所做的每個Ajax請求外,此隨機字符串都將作爲散列字符串發送。當服務器收到Ajax請求時,該散列與用戶表匹配,以確保ID和散列是有效的對。如果是這樣,請求是有效的。
'祕密'隨機字符串永遠不會進入用戶領域,不容易被猜測,這意味着哈希永遠不會被用戶生成。這種請求是否安全?有什麼缺點嗎?如果我使用一些鹽,會更好嗎?
在一個側面說明,這種驗證真的讓我感興趣。我參加了一個交互設計課程。 '我們'有'世界知識,頭腦知識'的原則。哈希確實使用該技術將元數據從「頭」轉移到「世界」(反之亦然)。頭腦和世界都有他們對元數據進行比較和解密的方法,因此無法模擬請求。只要世界不知道頭腦知道什麼。
那麼,說,我想知道我的請求是否(相對)安全。提前致謝!
Reinder