2011-08-24 88 views
0

我是新的會議。我讀了很多文章,但我不明白。劫持一個會話,攻擊者是否必須在受害者登錄的同一臺計算機上?劫持會話發生在遠程計算機上嗎?

我的意思是喜歡去圖書館,你忘了註銷。

或劫持可以沒有這個?

+0

[PHP會話安全]的可能重複(http://stackoverflow.com/questions/328/php-session-security) – Incognito

+0

好閱讀:http://phpsec.org/projects/guide/4.html –

+0

@ibu engish請 – Gaourokelos

回答

1

假設...

  • 攻擊者沒有妥協客戶端或服務器計算機,並
  • 沒有在聽(無論是本地的客戶端或本地服務器,或在互聯網上核心路由器),或連接充分加密
  • 會話令牌是足夠隨機的(你可以假定爲PHP內置的會話機制)
  • 你的網站沒有XSSXSRF漏洞。

......劫持會話的唯一方法實際上是在物理上使用受害者之前使用的瀏覽器。您可以使用session.cookie_lifetime配置選項配置會話的生命週期。瀏覽器關閉後,默認(0)建議瀏覽器使會話無效。

+0

這是否應該在php.ini? – Gaourokelos

+0

@Gaourokelos是的,你可以在'php.ini'中設置這個選項,也可以在'.htaccess'或腳本本身(通過['ini_set'](http://php.net/ini_set))設置。請注意,默認值(會話cookie)是一個很好的值。 – phihag

0

它可以以各種方式製成。

  1. 黑客可以訪問/放一個病毒在那裏,他發現他的會話ID的受害者計算機上。
  2. 他可以偵聽網絡流量來嗅出cookie。
  3. 也可以(特別是在共享主機上)訪問存儲會話數據的目錄。
  4. 如果您不過濾輸入數據xss攻擊是可能的。

如果您加密連接或會話cookie,並且在他/她登錄時存儲用戶的IP /瀏覽器,然後檢查請求的IP是否匹配,則可以防止某些危險。

+0

非常感謝您的閱讀,因爲我在讀取IP時存儲IP地址,並在每一頁上檢查它是否可靠。 – Gaourokelos

0

會話存儲在服務器上,並通過會話ID訪問,這就是瀏覽器cookie。 劫持一個會話的所有人都必須使用其他人正在使用的會話ID。換句話說,將他們的會話cookie改爲其他人的會話cookie。