作者hareion08 (巨蟹)
看板PHP
標題[請益] Session登入狀態請益
時間Mon Jan 19 09:02:22 2015
聽過有網站直接在
Session存一個值就表示登入中
例如:Login=ok,user=admin
真的安全嗎?
雖然說session是伺服器端而且有加密
…
不過另一種做法
在session 存登入資訊或token
每個頁面都做驗證
這樣感覺很吃資料庫跟系統的效能
Orz 請各位前輩指教
--
Sent from my Android
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.222.125
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1421629345.A.081.html
※ 編輯: hareion08 (118.160.222.125), 01/19/2015 09:03:13
1F:推 LaPass: 安全,一般人沒辦法直接拿到session 01/19 10:11
2F:→ LaPass: 那種狀況下,入侵的方式是拿到COOKIES 01/19 10:12
了解~感謝!
3F:→ MOONRAKER: 驗證很簡單,存一些uid之類的資訊,再存一個hash 01/19 10:24
4F:→ MOONRAKER: hash內容包括一個密鑰,不存在session裡 01/19 10:25
5F:→ MOONRAKER: 驗證時取出資訊,跟密鑰再hash一次,看有沒有符合 01/19 10:26
6F:→ MOONRAKER: 這樣就不牽涉資料庫。就算每頁都要對資料庫檢查權限那 01/19 10:30
7F:→ MOONRAKER: 也可以用cache和其他手段來緩和。 01/19 10:30
我是用Codeigniter當Framework 不知道他本身是不是本來就有hash session?
是的話,那我真的擔心太多了XD
※ 編輯: hareion08 (140.112.50.144), 01/19/2015 10:40:51
8F:→ MOONRAKER: 你用CI可能反而要小心一點 CI改用cookie來模擬session 01/19 10:54
9F:→ MOONRAKER: 而且除非你用一些third-party的login plugin 他並沒有 01/19 10:57
10F:→ MOONRAKER: 內建的機制特別做每一頁的hash validation 01/19 10:57
11F:→ MOONRAKER: 有寫好的library可以直接把CI的cookie-based session 01/19 10:58
12F:→ MOONRAKER: 換回php native session 至少可以保證一定存在server上 01/19 10:59
13F:→ MOONRAKER: 可以找一找 然後把system/libraries/Session.php換掉 01/19 11:00
已替換(
http://ppt.cc/~YsH ),感謝提醒
然後再自己寫個hash validation鞏固安全!
※ 編輯: hareion08 (140.112.50.144), 01/19/2015 11:13:51
※ 編輯: hareion08 (140.112.50.144), 01/19/2015 11:14:13