2010-07-11 80 views
3

Oi!登錄後返回上一頁

我很久以前就想在我的網站上登錄一個返回鏡像頁面功能。但最好的方法是什麼?

我在想保存網址到會話中,當他/她登錄,我檢查returnto會話如果設置,如果是,我重定向到該頁面

那是安全/好?

+1

您提出的解決方案對我來說很有意義。 – 2010-07-12 03:02:30

回答

6

這通常通過將上一頁的URL放入登錄頁面的查詢字符串中來完成。

編輯:確保驗證該URL是相對路徑並對其進行正確編碼。

+1

是的,我看到幾乎每個網站都這樣做,但是如何讓它安全?一個白名單? – Berra 2010-07-11 22:55:40

+0

重要嗎?無論如何,您應該檢查每個頁面上的訪問權限 - 訪問控制比「用戶是否登錄?是的?他們必須有訪問權限!」如果有人通過他們不應該訪問的頁面,則應該已經阻止了該頁面。否則,只要在地址欄中輸入,就可以登錄並進入被阻止頁面,並且可以實現同樣的效果,就好像他們將查詢字符串放到了登錄頁面的URL中一樣。 – cHao 2010-07-11 23:06:29

+1

你如何使它安全抵禦什麼? – SLaks 2010-07-11 23:08:32

2

每個頁面的頂部(會話正確初始化&配置後,無論初步&你需要很重要),你需要射擊一個功能(例如,「checkLogin()」),以檢查&看是否訪問根據一些特定的條件,用戶已經設置了會話/ cookie /許可(針對該頁面)。
要檢查每個特定頁面需要什麼所有權限,可以將有關這些權限的一些參數傳遞給函數定義,並將用戶認證爲合適的。

如果設置了條件,您可以將用戶作爲已驗證的用戶重定向到他所請求的頁面,否則只是將他重定向到您的站點的登錄頁面(其請求的頁面在查詢字符串中提到或保存在一個會話變量)。現在經過適當的登錄&設置特定的權限進行身份驗證,您可以輕鬆地使用查詢字符串的請求頁面的值重定向到他的目的地。

希望它有幫助。

+1

我做了upvote這個,雖然我不同意暴露內部的任何東西放在查詢字符串的安全性。 @ bob-the-destroyer在這方面絕對正確。一個相當安全的方法是使用提供checkLogin()函數的mysql查詢並從那裏提取任何你想要的東西。帖子也可以工作,cookies會起作用,但不會很安全。 – 2012-06-10 01:50:58

+0

@tony gil - 我同意你的看法以及「驅逐艦」的說法。感謝您指出正確的方向! – 2012-06-10 15:16:09

相關問題