2013-04-02 70 views
3

我已經創建了一個用戶登錄系統。php重置密碼鏈接

在我忘記的密碼頁面。我使用php電子郵件給用戶。 用戶將收到一封帶有鏈接

鏈路

[email protected]&confirm_code=uefu8878ef... 

用戶可以通過點擊該鏈接訪問的頁面reset_password。

但是,這是使用GET,這意味着任何人都可以檢查瀏覽器歷史記錄以訪問此頁面並重置密碼。

有什麼建議嗎?

回答

6

鏈接使用後,請將確認碼標記爲已使用/無效,以便它不能再次使用。

+0

這是否意味着我必須每次都做一個確認碼? –

+0

另外,當您創建代碼時,添加到期日期。如果不使用它,不要讓它永遠坐在那裏。 –

+0

,我也會建議使用post。除了上面提出的解決方案 –

1

如果您想隱藏電子郵件,也可以生成一個自定義標記來執行此操作。令牌必須是唯一的,並將其與電子郵件地址鏈接在數據庫中。在使用時刪除它(或將其標記爲已使用)。

0

將您的確認代碼保存在數據庫中,並在它與電子郵件地址之間建立鏈接,並給它一段時間,以便在時間過期後現在過期,現在每次請求此頁面時首先查看confirmation_code相關到這個電子郵件,如果它是檢查使用時間與數據庫內的時間,那麼如果它沒有過期標記爲授權然後處理該請求,否則刪除它的記錄在所有

然後關於到期更安全我認爲如果將有效期限設置爲1小時,這將有意義。希望這會有所幫助:)