【问题标题】:how use CSP with pdf.js? I have a problem with worker如何将 CSP 与 pdf.js 一起使用?我对工人有意见
【发布时间】:2020-09-15 15:13:23
【问题描述】:

MVC c# 应用程序。 我正在使用 CSP,格式如下:

<meta http-equiv="Content-Security-Policy" content="
    default-src 'self';
    script-src 'self' https://mozilla.github.io/pdf.js/build/pdf.js https://mozilla.github.io/pdf.js/build/pdf.worker.js;
    style-src  'self' https://meyerweb.com/eric/tools/css/reset/reset.css;
    object-src 'self';
    base-uri 'self';
    connect-src 'self';
    font-src 'self';
    frame-src 'self';
    img-src 'self';
    manifest-src 'self';
    media-src 'self';
    worker-src blob:;"/>

在项目中,我将 pdf.js 用于 base64 pdf。我看到了我的文档,但我没有看到 pdf.js 的按钮栏。 我的浏览器控制台显示:

和我的javascript函数使用:

var DivContenedorPDF = document.createElement("div");
DivContenedorPDF.id = "pdf-viewer";
var pdfData = atob(b64);
var pdfjsLib = window['pdfjs-dist/build/pdf'];
pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';....

我尝试添加 blob: 在 default-src 中,使用本地 pdf.js(这没有错误但不起作用)...

额外信息:

  • api.js 是 pdf.js webpack 的一部分。
  • 我的测试处于预生产阶段(在 localhost 中,控制台抛出 0 个错误)。
  • 我没有用于 pdf.js 按钮栏的 CSS。

提前致谢!

【问题讨论】:

    标签: javascript pdf content-security-policy pdf.js


    【解决方案1】:

    尝试将 blob: 添加到 script-src。

    【讨论】:

    • 仍然无法在控制台中出现相同的消息错误。
    【解决方案2】:

    您的浏览器控制台显示 CSP:

    default-src https: data: 'unsafe-inline' *.google.com
    

    这与您在元标记中显示的不同:

    default-src 'self'; ...
    

    看起来实际上您确实在其他地方发布了 Content-Security-Policy,而不是您想象的(和编辑)。

    worker-src blob: 元标记中的 totally enough 允许从 blob-URL 创建 worker。

    【讨论】:

    • 你好@granty。控制台在错误中使用通用消息。我在所有代码中声明一次。
    • 控制台警告总是基于真实的 CSP。控制台警告中引用的策略以某种方式最终出现在浏览器中。请检查HTML代码中的重复&lt;meta csp&gt;,并在浏览器的开发者工具中检查该页面没有CSP HTTP-header
    【解决方案3】:

    @granty 给了我答案:控制台中的消息不是通用的。我不知道为什么,但我的 IIS 使用了另一个 CSP 配置。 我的代码可以删除 IIS 响应标头部分中的配置。

    【讨论】:

      猜你喜欢
      • 2020-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-20
      • 2015-11-07
      • 2021-03-16
      • 2018-08-31
      • 1970-01-01
      相关资源
      最近更新 更多