我試圖創建自定義會話ID生成器。根據我在網站上閱讀的內容,您可以通過手動編輯PHP的設置文件來完成此操作,但是,直到我從共享服務器切換到完全可自定義的服務器時才能使用它。一種無需編輯即可生成自定義會話ID的方法php.ini
我想問的是,是否可以通過向頁面輸入PHP代碼來指定如何生成會話ID?我的意圖是使用與默認ID生成器相同的機制,但使用sha512和一些自定義的好東西,如鹽。
我試圖創建自定義會話ID生成器。根據我在網站上閱讀的內容,您可以通過手動編輯PHP的設置文件來完成此操作,但是,直到我從共享服務器切換到完全可自定義的服務器時才能使用它。一種無需編輯即可生成自定義會話ID的方法php.ini
我想問的是,是否可以通過向頁面輸入PHP代碼來指定如何生成會話ID?我的意圖是使用與默認ID生成器相同的機制,但使用sha512和一些自定義的好東西,如鹽。
如果在調用session_start()
之前將字符串傳遞給session_id()
函數,則可以自行設置會話ID。例如:
function generate_id() {
...
return $your_id;
}
session_id(generate_id());
session_start();
這與['session_regenerate_id()'](http://php.net/manual/en/function.session-regenerate-id.php)不兼容。 – hakre
它雖然不直接。我可能需要運行一些測試來查看我所想的方法是否值得使用,但這是可能的。不過,謝謝你的關心。 –
如果你將一個id傳入session_id,並且這是來自前一個會話的ID,那麼session_start會繼續前一個會話,如果cookies/get/post沒有任何PHPSESSID數據?我在問你是否可以手動傳遞會話ID,而不是依靠cookies/get/post。 – CMCDragonkai
爲什麼要這麼做?默認情況下,PHP會話是足夠安全的。 – TimWolla
你的問題是編輯php.ini文件嗎?或者你沒有安裝你正在尋找的哈希? – hakre
我的問題是我無法在共享的託管網站上編輯php.ini,但無論如何,@MVS都爲我提供了答案,謝謝。 –