2016-11-23 64 views
1

OWASP website建議驗證內容類型標頭。但它沒有指定相同的理性。即使我沒有閱讀或使用它,我應該驗證內容類型標題的原因是什麼?爲什麼在REST請求中驗證內容類型標頭

投遞,或將新的數據時,客戶端將指定 內容類型的 輸入數據(例如應用程序/ xml或application/JSON)。服務器不應該假設內容類型;它 應該始終檢查Content-Type標題和內容是相同類型的 。缺少內容類型標頭或內容類型標頭會導致服務器拒絕帶有406不可接受響應的內容 。浮現在腦海

回答

2

一個例子是一個跨站點Ajax請求,很容易發送text/html要求,不會產生飛行前的要求,但它是不可能的applictaion/json。因此,如果您的POST服務需要json並更改服務器狀態,則可能會利用CSRF(如果text/html被接受用於內容類型),但如果驗證application/json,則會有一些基本保護,因爲瀏覽器不會如果對飛行前的響應沒有明確允許CORS發佈,則發送來自不同域的請求。

因此,跨域ajax請求的一些屬性取決於內容類型。我認爲這可能是主要原因。

同樣從更理論的角度來看,需要數據的格式來解析它。我想不出一個實際的漏洞,但至少在理論上,試圖以錯誤的格式解析數據可能會導致錯誤的結果,所分析的東西與它們應該是不同的。最好只是驗證客戶實際上正在發送它聲明的內容,以及它應該是什麼。

+0

接受標題怎麼樣?或者它算作一個單獨的問題。 –

相關問題