CSRF 繞過
日期
2016 年 3 月 4 日
說明
Play 的 CSRF 支援中發現一個漏洞。
Chrome Beacon 擴充功能允許非預先飛行的非表單跨來源 POST 要求,這會使 Play CSRF 篩選器假設只有表單 POST 要求會受到 CSRF 攻擊的假設失效。
影響
當受害者的瀏覽器是 Chrome 時,Play 的 CSRF 檢查可能會被繞過。
受影響版本
- Play 2.2.0 - 2.4.6
因應措施
在 application.conf
中設定下列組態
play.filters.csrf.contentType {
blackList = []
whiteList = ["none"]
}
請注意,這將導致所有 POST
application/json
要求都需要 CSRF 檢查。
修復
升級至 Play 2.5.0。有關 Play 2.5 如何修改以提供更好的 CSRF 保護以及升級所需執行的動作的詳細資訊,請參閱 此處。
致謝
發現此漏洞的功勞歸於 Atlassian 的 David Black。