有沒有人知道PHPSESSID
的工作原理?它如何工作以及它被保存在哪裏?它是保存在客戶端還是在服務器端,如果他知道我的PHPSESSID
,另一臺PC能否通過他的PC連接到我的賬戶?如何保存PHPSESSID?
回答
是的,這就是爲什麼它是最好不要通過URL傳遞會話ID,而是改用餅乾:
的php.ini:session.use_cookies = 1
在這種情況下,有一個文件夾是在服務器(php.ini中:session.save_path
)將存儲這些文件,並且在您的硬盤上還有一個cookie,用於將您的憑證映射到註冊的session_id。
的php.ini:session.cookie_lifetime
設置時間這個cookie將活(0表示無限),而
的php.ini:session.gc_maxlifetime
定義它會活多久在服務器上。
使用
的php.ini:session.cookie_httponly = 1
與session.cookie_secure = 1
沿(如果你使用的是SSL)
,以提高你的cookies的信息,使他們都是通過JavaScript不可用的,是一個很好的最後一次機會保護在xss攻擊的情況下將降落傘發送到惡意目的地。
正如爆炸藥丸所指出的那樣,無論如何總是有一種方法可以高枕無憂。你所能做的就是讓它更難。
會話數據保存在服務器端的文件系統上,會話ID作爲標識符。實際位置各不相同,您可以通過ini設置更改它。您也可以更改名稱,但將其作爲cookie提供給客戶端並引用會話文件。在我的系統
/var/lib/php5/sess_53jsd3icrkbqbbfrl6qlv6e6a7
在瀏覽時我有PHPSESSID餅乾53jsd3icrkbqbbfrl6qlv6e6a7
。
由於這用於識別會話,因此如果它暴露出來,則存在安全風險,因此如果用戶知道會話ID,則可以竊取會話。這被稱爲會話劫持。請注意,即使session.use_cookies = 1
還不夠,因爲沒有任何東西阻止某人設置該cookie,如果他們知道的話。使用https加密cookie是我所知道的唯一有效解決方案。
還有http://us.php.net/manual/en/session.customhandler.php,它可以用來代替基於文件的會話。 – DCoder 2013-04-06 15:20:37
- 1. PHPSESSID未保存到cookie
- 2. 如何保護PHP中的PHPSESSID?
- 3. 如何更改PHPSESSID Cookie域?
- 4. PHPSESSID是如何生成的?
- 5. 如何使用PHP PHPSESSID
- 6. 如何重命名PHPSESSID?
- 7. 如何閱讀PHPSESSID的會話
- 8. 如何在PHPSESSID cookie中設置PATH?
- 9. 如何將PHPSESSID cookie限制爲https?
- 10. 如何檢測是否PHPSESSID改變
- 11. php腳本如何處理兩個PHPSESSID?
- 12. URLConnection無效phpsessid
- 13. Python PHPSESSID缺失
- 14. PHPSESSID不會死
- 15. PHP set PHPSESSID
- 16. PHPSESSID和捲曲
- 17. 消毒PHPSESSID
- 18. 使用相同的IP地址保存2個PHPSESSID訪問計算機
- 19. PHPSESSID安全問題?
- 20. PHP 5 Hashalgorythm爲PHPSESSID
- 21. 禁用PHPSESSID從URL
- 22. 如何保存
- 23. 如何保存
- 24. 如何在Yii之前保存保存
- 25. 如何保存而不保存爲
- 26. 如何保存PersistentStore
- 27. 如何保存textView
- 28. 如何保存StorageFolder
- 29. 如何保存QStandardItemModel?
- 30. 如何保存csv?
我認爲這個答案會幫助你。 http://stackoverflow.com/a/1370974/2252330 – 2013-04-06 15:16:05