首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Chrome中嵌入程序不允许生成Wasm代码

Chrome中嵌入程序不允许生成Wasm代码
EN

Stack Overflow用户
提问于 2020-07-06 19:49:36
回答 1查看 2.4K关注 0票数 5

我正在嵌入一个WebGL游戏内置的团结在我的网络应用程序内置的瓶。我将CSP用于后端的安全目的,但即使在我的CSP中包含了wasm-eval指令之后,我仍然只能在Chrome中获得这些错误:

代码语言:javascript
运行
复制
UnityLoader.js:4 failed to asynchronously prepare wasm: CompileError: WebAssembly.instantiate(): Wasm code generation disallowed by embedder

printErr @ UnityLoader.js:4
UnityLoader.js:4 CompileError: WebAssembly.instantiate(): Wasm code generation disallowed by embedder
    at blob:http://localhost:5000/510c750f-1181-4d80-926f-dc71e527c16b:8:31195

Uncaught (in promise) abort({}) at Error
    at jsStackTrace (blob:http://localhost:5000/cd04e961-d5f5-490c-8869-fbc73dd40aa4:8:22295)
    at Object.stackTrace (blob:http://localhost:5000/cd04e961-d5f5-490c-8869-fbc73dd40aa4:8:22466)
    at Object.onAbort (http://localhost:5000/static/desert_run/Build/UnityLoader.js:4:11118)
    at abort (blob:http://localhost:5000/cd04e961-d5f5-490c-8869-fbc73dd40aa4:8:446869)
    at blob:http://localhost:5000/cd04e961-d5f5-490c-8869-fbc73dd40aa4:8:31316

我不确定我需要修复什么,script-srcscript-src指令也不起作用。下面是我的CSP和我在_init_.py中用于在后端实现它的代码:

代码语言:javascript
运行
复制
from flask import Flask, url_for, current_app
from flask_talisman import Talisman

csp = {
    "default-src": [
        "'self'",
        'https://www.youtube.com',
        'blob:',
        'wasm-eval'
    ],
    'script-src': [ "'self'",
                    'blob:',
                    'wasm-eval',
                    'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js',
                    'https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js',
                    'https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js',
                    'https://ajax.cloudflare.com/cdn-cgi/scripts/7089c43e/cloudflare-static/rocket-loader.min.js']
}
talisman = Talisman()
app = Flask(__name__)

def create_app():
 talisman.init_app(app)
 talisman.content_security_policy = csp
 talisman.content_security_policy_report_uri = "/csp_error_handling"
 return app
EN

回答 1

Stack Overflow用户

发布于 2021-01-14 16:03:29

我遇到了一个类似的问题,但能够通过将'unsafe-eval'添加到script-src列表中来解决这个问题,因此您应该执行以下操作:

代码语言:javascript
运行
复制
csp = {
    "default-src": [...],
    "script-src": [
        "'self'",
        "blob:",
        "'unsafe-eval'",
        "https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js",
        ...
    ],
}

下面是我在服务器上为Unity WebGL游戏提供服务的所有指令和值:

代码语言:javascript
运行
复制
csp = {
    "default": ["'self'"],
    "img-src": ["'self'"],
    "style-src": ["'self'"],
    "script-src": ["'self'", "blob:", "'unsafe-inline'", "'unsafe-eval'"],
    "worker-src": ["'self'", "blob:"],
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62763453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档