我已經建立了一個提供一些基本的「我可以這樣做嗎?」的類。我的網站的授權功能,比如「這個用戶可以查看這個資源嗎?」或「該用戶是否可以添加圖片?」存儲授權對象到會話?
因此類對象實例化在不少頁面(可能,每一頁都具有用戶交互)使用$authorize = new myAuthorizationClass();
然後myAuthorizationClass
類中查找用戶的ID,並檢查他們的訪問級別。
然後我可以這樣說
if ($authorize->canAddImage()){
// do image add stuff
}
是否有可能的,安全的和「最佳實踐」這個$authorize
對象存儲到會話中?有沒有另外一種方法來避免在每個頁面上構建這個認證對象,並進行數據庫交互等?
我不認爲它可以這麼簡單,只是說「將用戶的權限級別設置爲A,B或C,並在他們的會話中設置!」因爲他們對特定資源的訪問取決於誰擁有資源,用戶在站點中扮演什麼角色等等,我們必須根據訪問的資源類型來檢查一些不同的事情。
由於
IIRC,在會話中存儲授權信息被認爲是不好的做法,特別是在基於cookie的會話中,因爲cookie可能會非常容易地在不安全的wifi等設備上被竊取。 –
@ truth - 謝謝,我認爲你是對的,但是這會存儲一個對象,然後執行身份驗證操作作爲函數。不確定這是否可能!但是,想要與專家權衡。 – julio