2010-08-09 218 views
10

我目前正在做一個php網站,我們使用一個Session變量來存儲每個用戶的權限級別。是否有可能「盜版」一個會話變量(我不想知道如何)

例如,如果您有任何一個人會在網站上,您會自動獲得值爲「member」的會話變量。

我所問的是:是否有可能爲攻擊者去網站上,並修改會話變量的值的「管理」,而不是「成員」

我不是問怎麼了,只是如果這是可能的,如果是的話,攻擊者將需要什麼樣的特殊訪問(例如:訪問代碼,...)

我有一個替代解決方案,這將替換權限值與令牌會隨着時間的推移而過期。

第二種解決方案的實施時間較長。

感謝您的幫助!

+8

爲什麼你不想知道如何?瞭解如何完成某些事情對於防止人們這樣做至關重要。這不像我們有一個思想警察,因爲知道如何利用事情而被罰款。 – 2010-08-09 20:01:32

+12

@Matti他可能試圖搶佔所有「我們不幫助黑客在這裏」downvotes當任何人問這種類型的問題 – 2010-08-09 20:03:10

+1

@邁克爾Mrozek而我回答艱難下來投票的問題,我得到我的答案投票。 – rook 2010-08-09 20:32:16

回答

11

沒有,除非:

  • 攻擊者必須訪問會話變量的存儲(通常是服務器的文件系統,但也可以是如數據庫)
  • 的更多的攻擊者intercepted a session cookie特權用戶。
  • 攻擊者成功鎖定了一個更有特權的用戶的會話(請參閱session fixation攻擊)。
+0

謝謝偉大的鏈接 – Ormoz 2014-10-20 23:20:48

3

從你所描述的我假設你沒有將權限存儲在cookie中。因此,他們獲得訪問權限的唯一方法是猜測/蠻橫強制管理員會話ID或使用一些跨站點腳本攻擊。如果你的會話ID足夠長,第一種方法很難完成。

+0

我沒有使用cookie。感謝你及時的答覆! – 2010-08-09 20:00:56

+7

@Lobsterm你是否明確地在查詢字符串中傳遞會話ID?否則,無論您是否意識到,都使用Cookie。 – meagar 2010-08-09 20:03:42

2

您的會話變量應該是安全的,因爲會話存儲在服務器上。但是,爲了將特定的客戶端與特定的會話相關聯,通常會設置一個包含會話ID的cookie,並且攻擊者可以嘗試通過清除其會話ID cookie來訪問其他用戶的會話(通過暴力或以某種方式捕獲別人的cookie)。

2

這取決於你如何存儲會話。如果它在URL中,那麼是的。如果它在cookie中,那麼也許。

2

除非您的應用程序存在安全漏洞,否則某人無法啓動並更改會話變量 - 這些變量存儲在服務器上,客戶端永遠無法直接訪問它們。

但是,他們可以做的是通過轉到像http://your.site.com/?PHPSESSID=2342f24502ade525這樣的URL來更改其會話ID。濫用的可能性有兩方面:(1)如果他們偶然知道登錄用戶的會話ID,會話ID會讓他們冒充該用戶,爲他們提供用戶擁有的所有訪問權限; (2)如果他們可以欺騙某人去連接一個會話ID的URL,並且該人登錄,他們現在知道該用戶的會話ID(因爲他們提供了它!),我們又回到了(1 )。

相關問題