【问题标题】:Add a new Http Header in Content-Security-Policy-Report-Only "report-uri" POST call在 Content-Security-Policy-Report-Only "report-uri" POST 调用中添加新的 Http Header
【发布时间】:2020-08-24 08:06:32
【问题描述】:

我们已启用带有“report-uri”指令的“Content-Security-Policy-Report-Only”响应标头来报告所有违规行为。

        <param-name>Content-Security-Policy-Report-Only</param-name>
        <param-value>default-src 'none'; connect-src 'self' api.amplitude.com; font-src 'self';
            img-src 'self' script-src 'self' 'unsafe-eval'
            'unsafe-inline';style-src 'self' 'unsafe-inline';manifest-src
            'self';frame-ancestors 'none'; frame-src 'self';
            report-uri /myApp/api/v1/csp/report;</param-value>

只要网页加载策略出现违规行为,浏览器就会自动对我们注册的端点“/myApp/api/v1/csp/report”进行 POST 调用,发送包含违规的 JSON 请求。

但此调用失败并显示 403 - Forbidden。

我们的应用程序还期望所有 POST/PUT Http 调用的请求标头中都有一个 CSRF 令牌。 由于此 API 调用是从浏览器自动进行的,因此它不会发送我们的应用程序所期望的 CSRF 令牌,因此会失败。 我们如何向浏览器自动发出的这个调用添加新的 HTTP 标头?

提前致谢。

【问题讨论】:

    标签: javascript security http-headers content-security-policy


    【解决方案1】:

    你不能。

    您需要为 CSP 错误设置端点,因此它不需要 CSRF 令牌。

    这应该不是一个严重的问题:您提供的错误报告 API 不应该能够做任何真正需要 CSRF 保护的事情(例如公开个人数据或使用用户身份向公众发布内容) .

    【讨论】:

    • 好的。但它是强制性的。对于所有具有 CSRF 令牌的 POST/PUT 调用,都是强制实现的逻辑。
    • @YathishManjunath — 然后为这个特定的端点做一个例外。
    • 谢谢,我已将 URI 列入白名单。
    猜你喜欢
    • 1970-01-01
    • 2013-05-03
    • 2018-05-04
    • 2018-09-05
    • 1970-01-01
    • 2022-01-21
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多