无法从本地路径下载并查看文件(ERR_BLOCKED_BY_CLIENT)

问题描述 投票:0回答:1

我将 CSP 策略部署到我的系统,然后在尝试从本地路径查看 PDF 文件时遇到错误。在添加CSP策略之前,不会出现此问题。此问题出现在 Edge 和 Chrome 中,但不会出现在 Firefox 中。解决方法是添加 Adobe Acrobat 扩展。有什么办法修改程序允许查看文件吗?

发生错误

我的 CSP 计划:

List<String> cspPolicies = new ArrayList<String>();
String originLocationRef = "'self'";

cspPolicies.add("default-src 'self'");
cspPolicies.add("script-src " + originLocationRef + " 'unsafe-inline' 'unsafe-eval'");
cspPolicies.add("object-src " + originLocationRef + " 'unsafe-inline'");
cspPolicies.add("style-src " + originLocationRef + " 'unsafe-inline'");
cspPolicies.add("img-src " + originLocationRef + " data:");
cspPolicies.add("form-action " + originLocationRef + " 'unsafe-inline'");
if (APP_USE_AUDIOS_OR_VIDEOS) {
    cspPolicies.add("media-src " + originLocationRef + " 'unsafe-inline'");
}

if (APP_USE_WEBFONTS) {
    cspPolicies.add("font-src " + originLocationRef + " 'unsafe-inline'");
}

cspPolicies.add("connect-src * 'unsafe-inline'");
this.policies = cspPolicies.toString().replaceAll("(\\[|\\])", "").replaceAll(",", ";").trim();
if (isFrame) {
    policiesBuffer.append(";").append("frame-src 'self';sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-downloads");
    if (INCLUDE_MOZILLA_CSP_DIRECTIVES) {
        policiesBuffer.append(";").append("frame-ancestors 'self'");
    }
}

我已尝试修改:

policiesBuffer.append(";").append("frame-src 'self';sandbox allow-forms allow-same-origin allow-scripts allow-popups allow-downloads");

通过添加沙箱值,如allow-modals、allow-popups-to-escape-sandbox、allow-top-navigation-to-custom-protocols,但错误仍然发生。

java google-chrome microsoft-edge content-security-policy sandbox
1个回答
0
投票

看起来像是 Chromium 的“老问题”。尽管他们后来提供了修复程序,但问题最近又以某种方式再次出现。 您现在可以尝试的一些解决方法:

删除 PDF 的
    sandbox
  1. CSP 属性。
    通过 
  2. Ctrl + 左键单击
  3. 打开 PDF,在新选项卡中打开它们。如果您选择此解决方法,这里是一个很好的代码示例
  4. 要修复此问题,请在
https://issues.chromium.org/

创建问题,让开发团队知道。

© www.soinside.com 2019 - 2024. All rights reserved.