我正在使用cakephp 2.1,並且我寫了一些操作,如查看,編輯和刪除。 在url中,它看起來像'view/1','edit/1','delete/1',這樣我就可以更改url中的id。 我不想在url中更改它,它不應該允許編輯id。請幫我做到這一點。這項工作將更加明顯。CakePHP2.1刪除網址中的ID
回答
好的......我想我理解你的問題。你擔心如果人們可以編輯這些ID,因爲它們在URL中是可見的,那麼這將是一個安全威脅?
首先,視圖操作:
您應該檢查在服務器端,如果用戶有權限與特定ID查看的記錄。如果他們不這樣做,那麼你可以給出一個錯誤。如果他們這樣做,那就讓他們看看 - 不要擔心他們是如何到達那裏的,不管他們是否在URL中編輯了ID。如果他們有權查看記錄,只需讓他們查看。
二,刪除操作:
同樣,就像視圖操作,你應該檢查在服務器端,看用戶是否有權限刪除的記錄。如果他們這樣做,那麼讓他們刪除它!如果他們編輯了URL中的ID,請不要擔心。如果用戶沒有刪除記錄的權限,那麼即使他們已經在URL中編輯了ID,您的服務器端檢查也會阻止它們。
三,編輯動作:
這稍微複雜一些,但還是很容易的。我假設你用HTML表單編輯記錄,並通過POST提交。好的,所以URL中的ID確定要提取和編輯哪個記錄。與查看和刪除一樣,您應該執行服務器端檢查以確保用戶有權編輯該項目。如果他們有權限,則返回表單。
表單加載後,瀏覽器中顯示的URL並不重要。表單提交的URL和表單提交的數據很重要。現在,默認情況下,編輯表單會將ID存儲在隱藏的輸入字段中。用戶可以更改該ID,從而更改正在編輯的記錄。
爲防止出現這種情況,請使用CakePHP的安全組件。你需要做的只是包含組件,CakePHP會在加載時自動在表單中加入一個哈希表,當表單提交時它會再次檢查。如果用戶編輯了隱藏的輸入字段,則此檢查將失敗,並且CakePHP將不允許編輯繼續。
請注意,要以這種方式使用安全組件,您必須使用CakePHP的表單助手(您可能已經是)來構建表單。
最後一點......有時候人們對於在數據庫中看到ID的人有點偏執 - 因此不希望他們在URL或其他地方顯示。但是,在幾乎所有情況下,關於身份證的內容都沒有任何「祕密」。誰看到他們並不重要。它們都是您的應用程序和數據庫的一種手段,用於識別記錄。只要你的應用程序是安全的,那麼你應該能夠向全世界展示你的所有ID,並且無需擔心。
- 1. 如何刪除網址中的id
- 2. 如何刪除網址上的#id頁
- 3. 刪除網址
- 4. 刪除ID和?從網址使網址seo友好
- 5. JQuery.address - 從網址中刪除#
- 6. 從網址中刪除hashtag
- 7. 從網址中刪除「essential_grid」
- 8. 刪除網址段
- 9. htaccess的刪除的網址
- 10. htaccess的:刪除網址
- 11. 刪除#!從我的網址
- 12. 如何使用htaccess從網址中刪除客戶端ID?
- 13. Htaccess代碼從網址中刪除ID和標題?
- 14. 從產品網址中刪除產品ID
- 15. 如何刪除Backbone.js中的#的網址
- 16. 從iis7的wordpress網址中刪除index.php
- 17. 刪除網址中的後綴
- 18. 如何刪除網址中的店鋪
- 19. 的sed從文件中刪除網址
- 20. 完全刪除網址中的散列
- 21. 從我的網址中刪除「?query =」
- 22. 如何刪除git中的網址
- 23. 刪除部分網址
- 24. 控制器網址刪除
- 25. Nginx:刪除部分網址
- 26. 刪除網址哈希
- 27. 網址並未被刪除
- 28. jquery刪除部分網址
- 29. 刪除id屬性從我的網址鏈接
- 30. 使用lighttpd(乾淨網址)從網址中刪除.php
你能解釋一下自己嗎?所以你想在你的網址中沒有ID?爲什麼你不想在你的網址中使用ID?你關心安全嗎?或者你只是想讓你的網址看起來不錯? –