2011-12-14 126 views
2

假設我有一個頁面,無論出於何種原因,都需要將其指向兩個不同的頁面處理頁面。PHP重定向安全

所以用戶提交網頁A上一個形式,將他們帶到頁面A.post,然後帶他們到頁面A.complete,最終將它們導向它第A與提交的信息。

A.post和A.complete是純粹的PHP,其中數據庫魔術正在發生,用戶通常永遠不會去那裏,如果他們直接去A.post或A.complete,他們會被提供一個空白頁。

說A.post通過查詢字符串發送A.complete數據,在$ _GET。用戶是否有可能以某種方式訪問​​A.post,以便在重定向發生時查看這些GET var或通過查看其頁面歷史記錄?

希望我已經清楚,歡呼!

回答

2

我可以問,爲什麼不這樣做「幕後」,並A.post不只是include('A.complete');

您重定向你有一個錯步的機會,用戶干預,或頭的黑客(意外輸入)的任何時間。

在服務器和客戶端範圍內保留您需要的任何邏輯。除非切換頁面的真正原因(可能這是域名轉移),否則我會將所有處理保留在一頁上。如果您需要切換,請確保您有某種形式的檢查步驟,因此用戶干預不是問題。

p.s.你的直接答案是YES。 (Firefox有控制 + 轉變 + ķ,因爲我敢肯定,很多瀏覽器提供直接現在(或者通過某種形式的插件)。)

0

是否有你所要做的一個原因重定向?網頁A是否可以簡單地發佈到自己?在那個過程中,它檢查是否正在完成一個後置操作。如果是這樣,請在顯示適當結果之前執行「A.post」的PHP代碼,然後執行「A.complete」。

我想我不知道爲什麼你需要做所有的重定向。

至於回答您的問題正式對用戶能夠看到的GET瓦爾,是的,這是可能的用戶來捕獲這些數據並查看它。

1

是的,這將有可能爲他們查看GET變量,但他們也將能夠看到帖子的變量也是如此。如果您擔心值的安全性,請添加鹽加密,然後將其解密爲服務器端。或者使用POST來代替SESSION變量,但如果它只是一個簡單的表單,POST將是首選。