×
サイバー攻撃について

11-3. HttpOnly設定時の注意

CSRF_COOKIE_HTTPONLY = Trueにすると、JavaScriptからdocument.cookieでCSRF Cookieを読めません。

その場合は、HTML内のトークンを取得します。

<form id="csrf-form">
    {% csrf_token %}
</form>
function getCsrfTokenFromDom() {
    const input = document.querySelector(
        "[name=csrfmiddlewaretoken]"
    );

    if (!input) {
        throw new Error("CSRFトークン要素がありません。");
    }

    return input.value;
}

CSRF_COOKIE_HTTPONLYは、CSRF対策の本質的な強化ではありません。

XSSが存在すれば、攻撃者はCookieを直接読めなくてもDOM内のトークンを読んだり、正規JavaScriptとしてリクエストを送ったりできます。


12. 推奨するDjango設定