2
我有一個使用Symfony2構建的Web應用程序,其中一些項目與其他用戶共享。當一個項目被共享時,用戶會收到該項目的鏈接。我希望收到鏈接的用戶在點擊電子郵件時自動獲得該網站的身份驗證。到目前爲止,我所做的是:從鏈接中驗證用戶只能從電子郵件中點擊
- 生成與共享鏈接一個獨特的標記,並將其添加到鏈接
- 當鏈接是通過與誰進行共享的用戶點擊,唯一令牌檢查並且相應的用戶被認證。
但是,這種方法存在缺陷。如果其他用戶在瀏覽器中複製並粘貼相同的鏈接,或者原始收件人將郵件轉發給其他用戶,另一用戶將被認證爲鏈接的原始收件人。應該怎樣才能克服這些缺陷?我真正想要的是:
- 鏈接應該只驗證用戶,當從電子郵件內點擊並且不應允許直接訪問。
- 只有在最初發送郵件的鏈接被點擊的情況下,才能對用戶進行認證。
我已經閱讀了幾個有點類似要求的問題,但不完全一樣。而且,對他們的迴應導致了這樣的結論:這是不可能的。是不是真的 ?
'是從郵件內點擊鏈接還是以某種其他方式訪問鏈接?檢查的唯一方法是引用者,而且**當然**不可靠。如果用戶將鏈接轉發給其他人,這是*他自己的錯誤*。或者,如果安全性很重要,您可以在訪問鏈接時詢問密碼*,而不是直接對其進行身份驗證。 –