我使用的是PHP 4+,我在osCommerce項目中工作,在那裏我遇到了URL中的會話ID,所以我只需要知道,它是一個很好的做法顯示在網址上的會話ID?如果是,那麼爲什麼?如果沒有,那麼爲什麼?以及如何隱藏網址中的會話ID,並在網址中使用任何替代字符串?在網址中顯示會話ID是否是一種很好的做法?
5
A
回答
7
將替代字符串放在那裏是毫無意義的 - 問題是,如果您使用的是URL驅動而不是Cookie驅動的會話跟蹤,那麼URL中的內容必須標識會話。無論是實際的會話ID還是可以從中派生出來的東西,都不在這裏,也不在那裏 - 你不會通過混淆使事情變得更安全。
這是一個好主意,部分取決於它周圍的附加安全性。如果您可以將會話嵌入式URL從一臺機器轉移到另一臺機器,並且只是像在同一會話中的同一用戶一樣繼續,那麼不會。但是你需要更多地瞭解它背後的網站才能回答這個問題。
1
當Cookie不被廣泛支持/啓用時,會使用URL會話ID。我認爲今天沒有任何理由使用它們。它們看起來很醜陋,它們對用戶不友好(你不能只輸入URL並且希望被登錄),並且它們具有安全風險(儘管它們本身不是脆弱的),它們使會話劫持漏洞更容易利用。
相關問題
- 1. 在會話中保存對象是否是一種很好的做法?
- 2. 總是加入SQL表是否是一種很好的做法?
- 3. JavaScript:window.spam是一種很好的做法嗎?
- 4. 存儲計算值是否是一種很好的做法?
- 5. 拆分CSS是否是一種很好的做法?
- 6. 在會話變量或Cookie中攜帶DB值是否是一種很好的做法?
- 7. 這個網址是無效的,不是很好的做法?
- 8. 在元標記中存儲csrf標記是否是一種很好的做法?
- 9. 是否將活動實例保存在WeakReference中是一種很好的做法
- 10. 在模型中設置Flash消息是否是一種很好的做法?
- 11. Android:在Adapter(RecyclerView)中手動清除Glide是否是一種很好的做法?
- 12. 從構造函數中調用方法是否是一種很好的做法?
- 13. 手動更改平臺中的文件是否是一種很好的做法?
- 14. Java:在XML中定義bean是否是一種好的做法?
- 15. 在Redux商店中配置是否是一種好的做法?
- 16. 在數據屬性中存儲文檔ID是一種很好的做法嗎?
- 17. 在堆棧上存儲C結構是否是一種很好的做法?
- 18. RxJs:在離開時取消訂閱Observables是否是一種很好的做法?
- 19. 驗證連接模型中的ID是否是一種好的做法?
- 20. 將網站會員資格數據上下文與BL分開是否是一種很好的做法?
- 21. 在類中定義ID屬性是一種好的做法嗎?
- 22. 將特定的NSTimeInterval傳遞給setMinimumBackgroundFetchInterval是否是一種很好的做法?
- 23. 在Application_Deactivated上更新LiveTile是一種很好的做法嗎?
- 24. 在SwingWorker內部運行ExecutorService是一種很好的做法嗎?
- 25. 在樹幹上工作是一種很好的做法嗎?
- 26. 用「使用」來引用特定項目是否是一種很好的做法?
- 27. 手動更改外鍵值是否是一種很好的做法?
- 28. 根據用戶語言制定常數是否是一種很好的做法?
- 29. 將RuntimeExceptions用於錯誤處理是否是一種很好的做法?
- 30. 將JPA實體用作域模型是否是一種很好的做法?
除了成爲主要的安全風險之外,URL驅動的會話ID還會導致您的搜索引擎優化失敗。將您的會話ID保存在Cookie中。 – 2010-05-25 13:14:57