iT邦幫忙

0

請教若同時兩個不同的瀏覽器同時用同一個帳號登入同一個系統

請問各位有經驗的高手一個問,
我發現到系統有一個狀況,就是我開了兩個不同的瀏覽器,分別是瀏覽器A跟瀏覽器B,然後該系統登入同一個USER帳號…結果我在瀏覽器A輸入完資料且也「確定送出」並將畫面鎖定,講明白點,也就是「確定送出」後用者只能看資料,不能再做任何的修改!!!
但我到瀏覽器B來…還可以操作(因為session內的資料是舊的資料)…通常這狀況…有何解啊??
我目前想到的是…他去資料庫內把值再載入,但我又想到,使用者若在某一頁去load資料的話,那他網頁上面寫的資料,不就…若沒存檔的話,就被洗掉了??

一般像這種兩個瀏覽器同時登入,另一個瀏覽器已經將資料確定送出問題的,有何解決方法呢?
不知問題是否有講詳細,再麻煩各位解惑了,謝謝

看更多先前的討論...收起先前的討論...
weiclin iT邦高手 4 級 ‧ 2017-10-28 22:42:07 檢舉
像這種資料根本不應該放 session, 應該要用資料庫的交易來處理
timloo iT邦研究生 2 級 ‧ 2017-10-29 17:25:47 檢舉
為了管控的方便,可以設成不允許同一帳號,登入兩次或多次,像敝司的系統,是同一帳號,再次登入的話,系統會強迫登出前次登入的畫面,維持同一帳號只能同時只能登入一次,迴避掉這問題。
同一瀏覽器,開第二頁登入同一系統,也不允許。
有何解決方法呢? => 就是要重新設計登入機制啊,自己有人自己弄,自己沒人花錢弄
兩種角度,一種是走 資料庫的交易機制,一種是改用單一登入機制
基本上單一登入機制會比較容易處理,走交易機制還有交易認定的問題,有人認為先交易才算數,有人認為後交易算數,這各要做一些需求與討論才能決定
klm2242 iT邦研究生 1 級 ‧ 2017-11-03 11:07:57 檢舉
謝謝各位

1 個回答

0
wiseguy
iT邦超人 1 級 ‧ 2017-10-30 14:44:18
  1. 簡單做法,也比較暴力,就是一個帳號只限一個 session。A登入,B再登入,則A session 失效被踢下線。這在一些比較嚴謹的網路銀行或機密網站上,多用此種方式。
  2. 簡單做法,把判斷放在後端做,前端頂多是一些 friendly 的提示。依你的例子,A送出資料做修改後,B再送出資料,後端必須知道資料已改過,只能回應資料已改,無法再改,更新失敗。這是最常見的做法,如果你的網站是B還能再改,那叫漏洞、Bug。
  3. 優秀做法,是 2 的進階版,頁面會以 ajax 去後台更新(定時pulling 或 long pulling)是否有更改的狀態,若有,則同步更新頁面狀態。依你的例子,A更新後,B的頁面會鎖定無法更新。在一些比如搶票、搶座位的網站,會使用這種技術。
klm2242 iT邦研究生 1 級 ‧ 2017-11-03 11:07:44 檢舉

謝謝你!!!

我要發表回答

立即登入回答