最近需要實現類似單點登入的功能。情況是這樣的,最初在做**a,做著做著,要做**b了,要求與**a完全分開作為兩個應用,但使用者資料要求與**a保持一致,也要求使用者在**a登入後,轉到**b時不需要再登入。怎麼樣,標準的sso吧。
查了一些資料,了解了不少原理。園子裡的幾個兄弟也寫得很多了,比如:
jillzhang 的 單點登陸(sso)元件的設計與實現一 和
亞歷山卓同志 的 手把手教你可復用sso元件的設計(原理篇) ,看了之後,受益匪淺,對實現原理有了基本了解。
但各種實現方案都相對複雜,也沒找到成熟的元件化實現方案。我所碰到的問題看起來並不是那麼的複雜,實在是不想深入鑽研(懶人,呵呵),苦思半响不解,實然靈光一現,頓悟,於是有了以下方案,大家來**巧一下,拍拍磚頭。
環境說明:
在同一臺物理伺服器上,執行iis和sql server。在iis上有**a和**b,在sql server上有資料庫a(sitea_db),資料庫b(siteb_db)和使用者資料庫(user_db)。這下知道標題中的特定的意思了吧,是夠特定了吧。
ok,大功告成,夠簡單吧!!
在安全性上我不是專家,我想到可能的問題是該票據要是被截獲,就會導致安全問題了,看了別的文章,標準的sso方案好象也有類似的問題。我的解決方案也類似,將該票據的有效時間設定得小一些,在我所描述的情況下,我想可以設定為2秒甚至更小一些。
易企CMS特定情況下Getshell漏洞分析
易企cms yiqicms 是國內知名的營銷型企業建站系統,基於php mysql開發。免費開源,對seo較為友好。近日,阿里的補丁監控平台diviner監測到yiqicms在特定情況下被getshell的漏洞。出現該漏洞的程式來自yiqicms1.8以下版本,在某些web套件中可觸發getshel...
synchronized在多執行緒情況下的使用
不同業務場景,有時會碰到大量資料的情況,在請求完資料後會通過model對映到對應的陣列或者字典中,從而對陣列進行操作,而多個執行緒同時對同一陣列進行取捨時內容就會出錯,為了避免這種情況可以使用 synchronized關鍵字來宣告來建立乙個互斥鎖,保證此時沒有其它執行緒對鎖定物件進行修改 synch...
在沒有x的情況下配置網路
一 ubuntu命令列修改網路配置方法 etc network inte ces 開啟後裡面可設定dhcp或手動設定靜態ip。前面auto eth0,讓網絡卡開機自動掛載.1.以dhcp方式配置網絡卡 編輯檔案 etc network inte ces sudo vi etc network int...