保护 CSP report-uri 有效负载
Securing CSP report-uri payloads
我希望实现 Lambda@Edge 函数,它将 CSP headers 添加到我的网站,从而提高我网站的安全性。
我的 URL 报告设置 (report-to/report-uri) 确实有问题。据我所知,我无法验证 CSP 违规请求。这是否意味着如果恶意人员获得了我的报告 API,他们就可以发送垃圾邮件 POST 请求并发送虚假数据?有什么方法可以为通过报告指令发布的报告添加任何类型的安全措施吗?
是的,恶意人士可以发送虚假的 SPAM 违规报告。但他不会从中获利,只是DOS攻击,不会影响网站。
如果您确实使用自己的服务来获取违规报告,则可以对此进行一些保护。您可以检查 cookie,为每个访问者的报告 API 生成一个特殊的 URL(例如,向其添加 md5(IP 地址))等
但通常没有理由保护报告。攻击者无法确定此 API 当前是 运行 还是已禁用。所以盲目攻击举报API是没有意义的
我不同意@granty
如果我是攻击者:是的,我不能确定报告 API 是 运行 但没关系。我知道在 Content-Security-Policy header 中设置 report-uri 指令之前 API 存在风险。如果我试图利用一个漏洞,我会对 CSP 报告 uri 进行盲目攻击,这样潜在的管理员就会误导我在网站上进行的所有利用测试。如果您知道您的漏洞可能会触发 CSP,则此攻击是有意义的。
我希望实现 Lambda@Edge 函数,它将 CSP headers 添加到我的网站,从而提高我网站的安全性。
我的 URL 报告设置 (report-to/report-uri) 确实有问题。据我所知,我无法验证 CSP 违规请求。这是否意味着如果恶意人员获得了我的报告 API,他们就可以发送垃圾邮件 POST 请求并发送虚假数据?有什么方法可以为通过报告指令发布的报告添加任何类型的安全措施吗?
是的,恶意人士可以发送虚假的 SPAM 违规报告。但他不会从中获利,只是DOS攻击,不会影响网站。
如果您确实使用自己的服务来获取违规报告,则可以对此进行一些保护。您可以检查 cookie,为每个访问者的报告 API 生成一个特殊的 URL(例如,向其添加 md5(IP 地址))等
但通常没有理由保护报告。攻击者无法确定此 API 当前是 运行 还是已禁用。所以盲目攻击举报API是没有意义的
我不同意@granty 如果我是攻击者:是的,我不能确定报告 API 是 运行 但没关系。我知道在 Content-Security-Policy header 中设置 report-uri 指令之前 API 存在风险。如果我试图利用一个漏洞,我会对 CSP 报告 uri 进行盲目攻击,这样潜在的管理员就会误导我在网站上进行的所有利用测试。如果您知道您的漏洞可能会触发 CSP,则此攻击是有意义的。