我敢肯定仍然有很多網站出於某種不可理解的原因使用Javascript來操作cookie,但根據所有可能發生的XSS,沒有什麼理由允許這樣做。爲什麼瀏覽器仍然允許這樣做?爲什麼不簡單地阻止JS看到cookies?爲什麼瀏覽器仍然允許Javascript查看cookie?
回答
我必須承認,這個問題類似於說「爲什麼瀏覽器仍然支持HTML,它的老」。向後兼容性是一個巨大的問題,並且切斷操縱cookie的所有現有的javascript代碼將是災難性的。
這就是說,也有一些情況下,JavaScript的JavaScript處理操作對跨站點通信是有用的。
通過這種方式,您可以直接在Cookie中設置首選項,而無需發出AJAX請求並保存在服務器端的session/user_profile中。這對於您在重新訪問網站時想要保留的某些用戶界面首選項非常有用,而在服務器端更容易,因爲在會話過期後無需註冊即可查看您的首選項。
你將如何實施沒有cookies的會話?使用URL參數?這比餅乾差。 – 2009-08-18 23:27:23
+1。用戶名= sean&password = 1234的cookie從網站開發者的角度來說可能會很愚蠢。但是,hide_tips = true的cookies無論如何都是無害的。 – seanmonstar 2009-08-19 01:10:48
您可以從服務器端設置httponly cookie,而javascript無法看到這些。那會給你想要的效果。
我有時依賴於cookie進行存儲從JavaScript客戶端數據的很小量,理解,這是在最理想的瀏覽器將在每一個請求到服務器發送cookie,即使它只是在客戶端上使用側。
但並非所有瀏覽器都能理解HTTPOnly cookie。即使他們明白,他們中的一些人也有錯誤。 – 2009-08-18 23:29:18
瀏覽器支持/ XMLHttpReponse狀態表格:http://www.owasp.org/index.php/HTTPOnly#Browsers_Supporting_HTTPOnly 仍然有100%的瀏覽器放棄他們的Cookie到XSS攻擊。 – russau 2009-08-19 00:28:38
讓我們清楚; JavaScript操作cookies完全合理且可以接受。它本身並不會造成XSS問題。一個寫得很差的網站確實如此。
- 1. 爲什麼瀏覽器允許CSRF?
- 2. 爲什麼瀏覽器允許關閉Javascript?
- 3. 移動瀏覽器中的WordPress仍然允許縮放
- 4. 爲什麼瀏覽器仍然從服務器拉取資源?
- 5. 爲什麼我的HTML頁面仍然被瀏覽器緩存?
- 6. 爲什麼瀏覽器仍然欺騙用戶代理?
- 7. 爲什麼有些瀏覽器允許「無效」字符實體?
- 8. 爲什麼瀏覽器不允許渲染
- 9. 什麼瀏覽器允許javascript成爲圖像標籤的來源?
- 10. 爲什麼IE瀏覽器選項禁用Cookie後,它仍然可以寫入和讀取cookie?
- 11. 爲什麼移位超過允許位仍然有效?
- 12. 爲什麼空的UIDragItem數組仍然允許拖動行?
- 13. 爲什麼readonly屬性仍然允許使用KVC編寫
- 14. 表單驗證Cookie在瀏覽器上仍然存在關閉
- 15. 仍然允許在AndroidManifest.xml
- 16. 爲什麼火狐執行JavaScript居然比其他瀏覽器
- 17. 允許/阻止WinForms Web瀏覽器控件中的Cookie
- 18. 在瀏覽器中查看JavaScript事件
- 19. Webdriver-Jenkins,瀏覽器仍然在後臺
- 20. 爲什麼Chrome和Safari瀏覽器沒有看到某些子域的cookie?
- 21. websockets是否允許p2p(瀏覽器到瀏覽器)通信?
- 22. Webdriver - 如何檢查瀏覽器是否仍然存在或仍然打開?
- 23. 書籤允許谷歌瀏覽器
- 24. 允許彈出Chrome瀏覽器的鉻
- 25. 使用jReject僅允許Chrome瀏覽器
- 26. 不允許瀏覽器縮放文字
- 27. 手機瀏覽器不允許滾動
- 28. 爲什麼tableView不允許滾動查看footerView?
- 29. 在瀏覽器中查看
- 30. 允許用戶查看消息流量的Web瀏覽器插件
因爲它的基本功能。如果這讓你感到困擾,請使用NoScript。 – voyager 2009-08-18 23:06:12
這不是關於我的問題,而是關於如何讓用戶獲得他們的Cookie,這些用戶被一個巨大的,不可維護的代碼庫所吸收,我們希望從頭開始重建,但禁止這樣做。 :) – dirtside 2009-08-18 23:09:48
http://www.codinghorror.com/blog/archives/001167.html HTTP只有cookie很酷... – russau 2009-08-18 23:14:42