http-headers - 在网页中设置 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 时不限制这些文件上传?如果是这样,怎么做?
解决方案
该问题的原因和修复如下 -
在 HTML 表单中将 XML 文件作为输入的按钮有一个内联事件处理程序,CSP 策略正在阻止该处理程序,从而阻止上传。我将此内联事件处理程序移至外部函数并调用该函数。这解决了问题,CSP 不再阻止该功能。
推荐阅读
- php - API PHP 读取 JSON 的问题
- javascript - MongoError:拓扑已关闭,请在创建新文档后连接
- c - 为什么我们声明 2d 数组具有基于 1 的索引,但我们在 C 语言中使用基于 0 的索引访问数组?
- geospatial - 在 spatstat 中将 png 文件转换为窗口(owin)文件
- python - ImportError:没有名为请求的模块:但它已经安装
- coinbase-api - 缺少参数:`type`
- graphics - 如何将文本等低带宽数据发送到 GPU
- html - Base64 编码的图像不会出现在 Outlook Web 和移动应用程序中,但会出现在桌面应用程序中
- core-data - SwiftUI 试图从 FetchedResults 获取对象但没有找到方法
- wordpress - 如何将 Select2 wordpress 插件中的“未找到结果”更改为其他语言