2010-11-12 44 views
3

例如,在管理員cp中,要刪除用戶,有一個鏈接 - http://example.com/acp/delete-user.php?id=102。鏈接打開時,系統會自動從數據庫中刪除該用戶。 想象一下,有人給我發了一個鏈接(就像那樣),我不小心打開了它。這意味着,我刪除該用戶而不知道它。 =(如何處理它?POST方法?一些令牌?以及如何做到這一點,我只是在學習。= P如何處理CSRF(我猜)?

回答

4

我建議你做那種事情有一種形式。http://example.com/acp/delete-user.php?id=102顯示與刪除按鈕和一個隨機產生的密鑰HIDEN輸入的形式。該值存儲在您的然後點擊提交,目標頁面會檢查你是否過了正確的密鑰

網絡上有很多關於CSRF的資源

+0

是的,隨機生成的密鑰是要走的路!看看我發佈的文章。 :) – 2010-11-12 17:17:32

-1

我希望你有一個認證系統,以便即使訪問鏈接您將需要登錄。

+0

這不是CSRF的問題。假設你是一個網站的管理員,並且你已經登錄。我向你發送一個鏈接,然後說嘿!點擊這裏!。哪些會將您的網站發送給您,自您通過驗證後,您幾乎可以做任何事情! – 2010-11-12 17:18:27

0

你看過this article。正如其他人所說的那樣,我希望你對所有事情都有認證。但要做正確的實現,你需要實現一個令牌服務。因爲如果您已經登錄並且我向您發送鏈接,那麼它會刪除用戶。

0

使用POST實際上只會讓攻擊者更加困難(仍然會使用POST更好)。

您應該生成一個隨機令牌並將其存儲在用戶的會話或數據庫中(針對用戶)。在做任何動作之前,你必須檢查是否存在正確的標記。如果您將其存儲在會話中,請記住還要保證會話安全。

你可以在這裏找到一個實現:http://www.serversidemagazine.com/php/php-security-measures-against-csrf-attacks