【问题标题】:How can I execute inline scripts in Boomla?如何在 Boomla 中执行内联脚本?
【发布时间】:2017-10-23 19:17:21
【问题描述】:

对于简单的原型设计,我想在我的网站根目录上运行内联脚本,这是一个html-1 文件。 JavaScript 控制台说:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src'self'https://boomla.comself”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-fdu2bQSeIdU5fvNNkRCjiwUEOOb+NLZDyGNVShZ1vCM=”)或随机数(“nonce-...”)。

我发现我可以使用.Trust 文件来配置内容安全策略,但我没有设法将其设置为启用内联脚本。

【问题讨论】:

  • 当我尝试将哈希以script-src sha256-XTqNqFSUlZHAW7f/OGNYSOEzxKhjdAAGMXoid2VEbJk= 复制到.Trust 文件时,它显示unsupported Content-Security-Policy directive value [sha256-XTqNqFSUlZHAW7f/OGNYSOEzxKhjdAAGMXoid2VEbJk=], supported forms are [foo.com], [http://foo.com], [sha256-...]
  • 显然,实现了错误的 base64 变体。修复正在进行中。
  • 在生产中修复了错误的 base64 变体问题

标签: boomla


【解决方案1】:

简答

将您的 javascript 代码放在一个单独的脚本文件中,并从根 html-1 内容链接它。

文件[类型]

//example.com [html-1]
//example.com/script.js [static-1]

//example.com 的文件内容:

<script src="/script.js"></script>
hello world

//example.com/script.js 的文件内容

alert('Hello from script.js!')


使用&lt;head&gt;

您还可以在html-1 文件中使用&lt;head&gt;&lt;script&gt; 移动到响应头:

<head>
    <script src="/script.js"></script>
</head>
hello world

html-1 解释器的一个特性是您可以使用&lt;head&gt; 部分,即使在编写.Inline 代码时也是如此。 (在这个例子中,.Request 方法被执行,因为请求是直接服务的。)


使用.Trust

这几乎是正确的,但你必须像这样引用哈希:

script-src 'sha256-XTqNqFSUlZHAW7f/OGNYSOEzxKhjdAAGMXoid2VEbJk='

注意:然后您必须提交更改以防止恶意软件添加受信任方。因此,这种方法不方便入侵您的内容。

【讨论】:

    猜你喜欢
    • 2017-06-14
    • 2020-02-12
    • 2019-06-27
    • 1970-01-01
    • 2010-09-10
    • 2014-07-14
    • 2010-10-14
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多