首页 > 解决方案 > 在网页中设置 CSP 时如何允许上传 XML、JSON 和 CSV 文件

问题描述

目前,我在网页的 HTML 文件中设置了以下 CSP 标头 -

default-src 'none'; script-src 'strict-dynamic' 'nonce-RANDOM' 'unsafe-eval' 'unsafe-inline' ; object-src 'none'; style-src 'self' 'unsafe-inline' 'unsafe-eval' https://fonts.googleapis.com; img-src * data:; media-src 'self' https://maps.gstatic.com https://maps.googleapis.com https://maps.google.com https://*.s3.amazonaws.com data:; form-action *; frame-src 'self' https://feed.mikle.com; font-src 'self' https://fonts.gstatic.com data:; base-uri 'self'; connect-src *

我们网页上有一项功能要求用户上传 XML 文件,而另一项功能需要 JSON 或 CSV 文件才能工作。

有没有办法在设置 CSP 时不限制这些文件上传?如果是这样,怎么做?

标签: http-headerscontent-security-policysecurity

解决方案


该问题的原因和修复如下 -

在 HTML 表单中将 XML 文件作为输入的按钮有一个内联事件处理程序,CSP 策略正在阻止该处理程序,从而阻止上传。我将此内联事件处理程序移至外部函数并调用该函数。这解决了问题,CSP 不再阻止该功能。


推荐阅读