所以我一直在編寫一個登錄腳本,它在成功登錄後重定向到上一頁。我見過幾個方式來傳遞引薦網址:傳遞和檢索引用頁面url
使用$ _ SERVER [「HTTP_REFERER」] - 將整個引薦URL。可能被操縱。所以不要被信任。
$ _GET並將referer作爲url參數傳遞。根本不安全。
在窗體中使用隱藏字段。即使使用POST也不太安全。
所以,由於方法2允許最大的靈活性,我選擇了這一點。問題是: 如果我通過沒有域的URL('http://www.domain.com/'被剝離),並且稍後在重定向時手動預先加載域,我能確定生成的URL重定向保留在我的域中嗎?如果不是,我該怎麼做以確保它不會偏離?
(假定,如果存在與結果的URL沒有網頁,它會被重定向到主頁)
如:http://www.domain.com/login.php?ref=category/products/product-1.php 成功登錄後,頁面會被重定向到'http://www.domain.com/'.$_GET['ref']
我知道應該怎樣做才能驗證形式URL參數:
'../'可以幫助導航到前一個文件夾,並且必須刪除。
所有在referer url參數中傳遞的標籤必須被剝離。
必須刪除所有'://'。
不知道我真的能理解,但會話變量(如數組)來存儲URL可以是適當的 - 你可以查找,在session var,前一頁並重定向到 – RamRaider
在$ _SESSION中存儲這麼多的URL會對它產生什麼影響?在堆棧表單中使用它可能會有點問題,因爲那麼我將不得不進行檢查以查看他們是否瀏覽過該頁面,或者使用了瀏覽器上的後退按鈕。 – BlackPanther