2013-11-23 70 views
-3

我目前正在使用來處理來自querystring(URL)http://example.com?id=c02df的$ _GET變量的結果,並更新等,因爲你知道用戶可以通過url (from above example id is c02df)看到什麼id發送到下一個頁面和可以自己改變URL的ID。請讓我知道是否有任何替代方法來交換頁面之間的ID來處理相應的功能,哪些用戶看不到或混亂?

回答

2

如果您不想讓用戶篡改請求,最好的解決方案是使用$_SESSION

如果您提供了關於您的代碼的更多信息,我可以提供有關該解決方案的更多信息。

編輯:這是一個「解決辦法」同時使用$ _SESSION和$ _GET(仍然沒有看到你的代碼在所有):

您設置$_SESSION['allowed_gets'][] = 'c02df';

然後,當用戶發出請求,您檢查他們是否允許這樣做要求:

if (!in_array($_GET['id'], $_SESSION['allowed_gets'])){ die(); }

0

如果你有內容的用戶不應該能夠看到,你應該有一個登錄系統。

如果您只想要不可猜測的URL,請避免$_GET參數的順序ID。例如,您可以生成ID的鹽漬MD5/SHA1哈希值,將其與ID一起存儲在數據庫中,然後在URL中使用該哈希值。