1
我已經看到幾個php登錄系統,它們在用戶登錄後使用簽名機制來驗證後續請求。例如,登錄類似以下內容時存儲在會話變量中。然後在應用程序的每個頁面請求中,重新創建此簽名並與會話變量中的簽名進行匹配。什麼是登錄系統中的簽名或令牌?它如何工作?
$_SESSION["signature"] = sha1($salt . $_SERVER['REMOTE_ADDR'] . $_SERVER["HTTP_USER_AGENT"]);
我的這個問題是:
- 爲什麼我們使用簽名或令牌?它如何保護一般?
- 什麼是鹽,爲什麼在簽名中使用它。 IP地址和用戶代理是否足夠?
- 此外,爲什麼在簽名被存儲爲服務器上的會話變量時使用哈希函數呢?
1. [反對跨網站僞造請求](http://en.wikipedia.org/wiki/Cross-site_request_forgery)。 2.因爲它足夠獨特。不,他們還不夠。那些可以被欺騙。 3.因爲它很容易製作,並且正如我所說在會話的整個過程中都是獨一無二的。 – Andrew
你的意思是像'記得我'的cookie嗎? [在具有長期持久性的PHP應用程序中實現安全用戶身份驗證](https://paragonie.com/blog/2015/04/secure-authentication-php-with-long-term-persistence#title.2) –