我目前正在使用來處理來自querystring(URL)http://example.com?id=c02df
的$ _GET變量的結果,並更新等,因爲你知道用戶可以通過url (from above example id is c02df)
看到什麼id發送到下一個頁面和可以自己改變URL的ID。請讓我知道是否有任何替代方法來交換頁面之間的ID來處理相應的功能,哪些用戶看不到或混亂?
-3
A
回答
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中使用該哈希值。
相關問題
- 1. 替代$ _GET
- 2. 如何避免「=」「或」
- 3. 避免document.write?任何替代品?
- 4. BeanWrapperFieldSetMapper替代方法,以避免setTargetType/setPrototypeBeanName
- 5. 替代項目以避免冗餘
- 6. 替代rand()以避免競爭條件?
- 7. 使用preg_replace避免重複替換
- 8. 避免或替代多個位置對象語句
- 9. 如何使用$ _GET ['ID']避免?id = 1與/ myid而不是
- 10. 是否有任何理由避免使用bigint代替主鍵?
- 11. 使用代表,以避免繼承
- 12. 避免替換組的JAXBElement
- 13. 避免與交替列表
- 14. 我應該儘可能避免使用JS,並使用CSS代替?
- 15. 帶循環追加的R函數避免使用(使用lapply代替)
- 16. 避免迭代NArray
- 17. 避免在代碼
- 18. 避免使用OOP
- 19. 避免使用javascript
- 20. 避免使用ServiceLocator
- 21. 避免使用Session.set
- 22. 避免使用C#
- 23. 如何避免Mongoid(或MongoDB)用null替換空數組
- 24. C++:替代矢量引用以避免複製大數據
- 25. SOQL:避免用NULL結果計數返回0(零)代替
- 26. 如何避免nginx在使用代理(proxy_pass)時用空白替換%20?
- 27. 免費替代品使用RegexBuddy
- 28. 使用heroku或替代
- 29. 使用替代()或的replaceAll()
- 30. 避免在以下語句中重複代碼:isset($ _ GET ['foo'] ['bar'])? $ _GET ['foo'] ['bar']:NULL;