2013-06-12 53 views
1

我是網頁設計新手。我擔心的是,如果我通過會話跟蹤匿名用戶以保持正確的語言等,那麼我將爲每個訪問我的網站的用戶保存數據(例如2 KB)。那麼它不會讓我的網站易受攻擊用戶通過創建虛假會話而溢出會話存儲器的內存?是匿名會話安全嗎?

感謝

+2

比通常的DOS攻擊更容易受到攻擊。 – 2013-06-12 20:18:51

+0

http://stackoverflow.com/questions/454635/where-are-session-variables-stored – user20232359723568423357842364

+0

位置問題? – gerrnar

回答

4

爲什麼不使用本地存儲,餅乾或一些其他的解決辦法,而不是會議?我不是說這是最好的解決方案,但Cookie可能是更好的解決方案,只是保持偏好。他們「可以」比會話更持久,而服務器端更少。

+1

,那麼您仍然會爲每個cookie獲取一個會話,以傳播該id。 – 2013-06-12 20:24:14

+0

正確但不是每個客戶端會話中的「每個cookie」。但至少你不會在該會話上放置任何其他內容,將所有信息保存在客戶端cookie中。另外通過不使用會話cookie,你可能會保持更長的信息。免責聲明:我不是一個巨大的Cookie濫用粉絲。只是說。 – MickJ

1

默認情況下,PHP將會話保存到磁盤;它只在內存中,而程序實際上正在運行,所以它只會是一個內存問題,如果你有很多訪問者 - 即在同一臺服務器上完全同時運行你的PHP代碼。

但是,與整個PHP進程使用的內存相比,會話數組所使用的內存量較少,因此如果您有足夠的同時訪問者導致問題發生,那麼就不太可能有會話他們每個人都會有很大的不同。

緩解這種事情的真正方法是讓程序運行得很快,以便它們快速退出,從而減少大量副本同時運行的機會。

+0

這種攻擊對於專家程序員來說是嚴重的嗎(它是否有任何名稱可以搜索?),或者我應該跳過這個想法。 – gerrnar

+0

那麼,大量的訪問者要麼是因爲你的網站真的很受歡迎(在這種情況下你需要增加你的服務器資源來應付),或者它是一個DoS('拒絕服務')攻擊,在這種情況下你需要有一個良好的系統管理員來提取代碼片斷(編程並沒有真正實現,除了使代碼儘可能快速和精簡地執行,以便它能夠更好地應對和編寫防禦性代碼,從而使致命錯誤的內存'在你的程序中間不會破壞事情,但你應該這樣做)。 – Spudley