我有一個主控制器來處理我的驗證系統的前端,它處理登錄,註銷,更新用戶信息等功能,我希望通過POST來調用視圖/表格。那麼像「delete_user」函數呢?我的想法是某人管理面板上的一個按鈕會顯示「刪除帳戶」,它會發送到「/ auth/delete」,並且該功能會根據用戶的會話用戶名或ID刪除用戶。這似乎有點開放,你可以發送一個鏈接給某人,當他們在該應用程序中打開它時,它會刪除他們的帳戶。最好的辦法是什麼?控制器安全問題中的代碼點火器驗證碼
0
A
回答
0
我處理這個問題的方式如下。在您的帳戶頁面上,您有一個刪除帳戶的鏈接。他們點擊該頁面並與另一頁面打招呼,詢問他們是否真的有把握,如果需要,請輸入他們的密碼以確認他們確定。
他們這樣做後,我停用他們的帳戶(不刪除),併發送一封電子郵件說他們的帳戶已被停用,如果這意圖沒有其他行動需要他們的一部分。如果沒有打算他們可以登錄到他們的帳戶,它會重新激活它。 (48小時內)48小時後,我刪除了他們的帳戶和信息。
1
你所關心的實際上叫做Cross Site Request Forgery或XSRF。你可以在OWASP Website上閱讀更多關於它的內容。
幾件事情,你應該做的解決這個問題 -
- 使用POST進行刪除操作。這並不能保護您免受XSRF的侵害,但可以保護您免受鏈接追隨者/頁面加速器的侵害。它也是http最佳實踐。
- 將您的會話標識符發佈在請求的正文中。在服務器端,比較來自cookie和來自請求的會話標識符 - 如果它們不同,則拒絕該請求。這是防止XSRF的「double submit cookie」方法。
- 或者,您可以要求用戶解決驗證碼。
此外,湯姆提到的「軟刪除」也是一個好主意。
1
這聽起來像添加一些其他信息的功能是答案。這裏是有問題的功能:
function delete() {
$id = $this->session->userdata('user_id');
$this->auth->delete_user($id);
redirect('home');
}
在代碼點火器這可以通過訪問site.com/class/delete這是我的問題訪問。我認爲一個好的計劃將發佈一個認證令牌與刪除按鈕(保存在cookie中),所以也無法通過URL採取行動:
function delete() {
if($this->input->post("token") == $this->session->userdata('token')) {
$id = $this->session->userdata('user_id');
$this->auth->delete_user($id);
}
redirect('home');
}
我不認爲我需要一個軟現在刪除,但謝謝你的提示!如果你看到任何其他問題請解釋,謝謝。
0
看一看較知名的認證庫之一笨:
https://github.com/benedmunds/CodeIgniter-Ion-Auth
如果你不決定只使用它,你至少可以得到關於如何去一些好的想法關於創建自己的
相關問題
- 1. 代碼點火器 - 簡單的控制器問題
- 2. 代碼點火器檢查驗證的用戶在控制器的調製器
- 3. 代碼點火器裝在控制器
- 4. 代碼點火器控制器uri段
- 5. 安全與代碼點火器
- 6. 錯誤代碼點火器驗證
- 7. 代碼點火器的Twitter GET問題
- 8. 代碼點火控制器網頁
- 9. 代碼點火器路由問題
- 10. 代碼點火器與base_url問題
- 11. 問題路由代碼點火器
- 12. 代碼點火器子目錄問題
- 13. 代碼點火器總是希望index.php訪問控制器
- 14. 代碼點火器商店goCart不訪問任何控制器
- 15. 不能訪問代碼點火器控制器功能(S)
- 16. 代碼點火器:從控制器訪問數組元素
- 17. 無法訪問默認控制器代碼點火器
- 18. 控制器中的Rails安全驗證?
- 19. Clonefish驗證與代碼點火器驗證
- 20. 代碼點火器中的自定義控制器類名稱
- 21. 代碼點火器中的跳躍控制器
- 22. 代碼點火器
- 23. 代碼點火器服務器端驗證的AJAX形式
- 24. 驗證控制器問題
- 25. 去除botdetect驗證碼代碼點火器鏈接
- 26. PHP代碼嗅探器驗證問題
- 27. 問題與JQuery getJSON檢索控制器數據(代碼點火器)
- 28. 表單驗證碼點火器
- 29. 從代碼點火器中從控制器下載excel文件
- 30. 代碼點火器 - 從HMVC模式庫中加載控制器