我有一個簡單的mvc應用程序,我想驗證用戶登錄每個頁面加載。儘管這是一個基於會話的登錄,但我仍然希望驗證信息是否安全。MVC:用戶驗證
我的問題是驗證用戶功能應該去哪裏?是否應該在用戶請求控制器之前執行的控制器中執行?
我有一個簡單的mvc應用程序,我想驗證用戶登錄每個頁面加載。儘管這是一個基於會話的登錄,但我仍然希望驗證信息是否安全。MVC:用戶驗證
我的問題是驗證用戶功能應該去哪裏?是否應該在用戶請求控制器之前執行的控制器中執行?
我不太明白你的意思,「爲了安全起見,我想每次驗證信息。」 什麼「信息」,超出會話令牌,你打算「驗證?」這應該是多餘的:如果用戶給出了一個您認可的令牌,例如來自您發給它的IP地址,則不需要進一步驗證。關於第二個問題,在任何MVC應用程序中總會出現一些「必要的預備」:獲取URL字符串(以及任何GET/POST參數),確保它們是(a)確認它是有效的,並且(b)確認該會話令牌確認這樣識別的用戶被授權提出該請求。如果不是這樣,請求可以用403 Forbidden
或類似的響應排除:沒有理由繼續進行。
因此,如果和當「真正的」控制器確實接到請求時,理所當然地認爲請求是(明顯)良好並且被授權的。 (或至少,驗證:請求者,在這一點上,「有一個驗證和可信賴的身份。」)
感謝您的輸入。我認爲最好是驗證每頁加載的季節信息,但意識到這可能是矯枉過正。 – Ralph
您*絕對*應仔細驗證令牌。你應該注意跨邊請求僞造(CSRF)和「所有常見的嫌疑犯」。但是,如果傳入的請求提供了一個可驗證的令牌*,並且*與另一個與您最近發給它的人知道的* e-v-e-r-y-t-h-i-n-g *一致,那應該就足夠了。 –
你試過什麼嗎?考慮發佈你的代碼示例。 – Augwa
是的,訪問控制通常是在自舉過程中使用專用控制器完成的 – rjdown
我不太明白「爲了安全起見,我想每次驗證信息」的含義。 *除了會話令牌,什麼*「信息」,你打算「驗證?」 –