2013-04-01 28 views
0

我所有的控制器都有一對/Edit的動作,一個用於GET請求,另一個用於POST請求。我已經在GET調用中添加了權限檢查(授權),以確保任何不應訪問對象的人都不會進入該對象。何時需要保護/編輯的GET和POST版本?

我是否需要在POST版本的方法中添加相同的檢查?它是多餘的,還是我應該合理地期望有人欺騙HTTP POST請求,即使他們不能訪問GET版本?

+0

是的肯定! – amhed

回答

1

這是trivially easy發送一個POST請求到一個URL。如果您的網站處理敏感/祕密數據,您應該期望人們嘗試各種方式來獲取它,並且您應該確保所有訪問點(包括POST請求)都檢查用戶是否有權訪問請求。

0

您可能沒有意識到,您已經偶然發現過去許多網站的主要漏洞。通常情況下,開發人員通過GET請求保護對頁面的訪問,但無法保護POST,因爲他們不希望它被使用。但是,很多Web框架都使用默認設置來通過使用GET查詢字符串或POST參數來處理GET和POST。如果yoru框架執行此操作並且您保留默認設置,則您可以隨時進行攻擊。

您可能還會感興趣的是,大多數Web應用筆測試人員首先映射應用程序,併爲GET資源發出POST請求,反之亦然。知道有多少黑客以這種方式完成,你會感到震驚。嘗試向Google發送POST請求,並注意他們在服務器上的表現如何。

總之,對GET和POST請求應用相同的安全代碼!如果POST永遠不會發生,那麼完全禁用它,以便服務器返回錯誤。