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