2
我是網絡開發新手,並試圖抓住安全問題。我閱讀了http://guides.rubyonrails.org/security.html這篇文章,這些是作者提到的攻擊者如何修復會話的一些步驟。會話固定
- 攻擊者創建了一個有效的會話ID:他就裝在那裏,他要解決該會話的Web應用程序的登錄頁面,並採取會話ID從響應中的Cookie(見1號和2圖片)。
- 他可能維護會話。即將到期的會話,例如每20分鐘一次,大大縮短了攻擊的時間範圍。因此他不時訪問Web應用程序以保持會話的活躍。
- 現在,攻擊者將強制用戶的瀏覽器到使用這個會話ID(在影像中看到3號)。由於您不能更改另一個域的Cookie(因爲具有相同的源策略),因此攻擊者必須從目標Web應用程序的域中運行JavaScript。 XSS將JavaScript代碼注入應用程序可以完成這種攻擊。下面是一個例子:<腳本>的document.cookie = 「_ SESSION_ID = 16d5b78abb28e3d6206b60f22a03c8d9」; </script >。稍後閱讀有關XSS和注射的更多信息。
- 攻擊者利用JavaScript代碼將受害者引誘至受感染頁面。通過查看該頁面,受害者的瀏覽器將會話ID更改爲陷阱會話ID。
- 由於新的陷阱會話未使用,Web應用程序將要求用戶進行身份驗證。
- 從現在起,受害者和攻擊者將共同使用具有同一會話的Web應用程序:會話成爲有效和受害者沒有注意到的攻擊。
我不明白兩點。
- 爲什麼用戶在第5步登錄,因爲會話是通過發送?
- 我看到了wiki上的可能解決方案,如用戶屬性檢查等。爲什麼我們不能在步驟5中爲用戶輸入用戶名和密碼時重置會話?