环境

版本:31.0.7

容器:nextcloud:31.0.7-apache

应用场景

  • 引入外站资源

  • 自定义网站统计

CSP保护源码

基类:lib\public\AppFramework\Http\EmptyContentSecurityPolicy.php

实现类:lib\public\AppFramework\Http\ContentSecurityPolicy.php

修改源码:

说明:

一般来讲,设置好需要信任的域名,再加上引入的外链内容,可以过CSP保护。

引入修改目录:

core\templates

布局文件:

layout.base.php

layout.guest.php

layout.public.php

layout.user.php

自定义插件,全局配置文件修改

一般情况下,上面的修改步骤,可以解决所有问题。

但,为了更加优雅,可以通过自定义APP形式,直接注入CSP配置,相应的配置,读取配置文件即可。

引入外链无法通过插件动态修改,需要手动修改布局文件,手动引入。

github源码:https://github.com/YoweTeam/nextcloud-app-custom-csp

推荐使用官方的加载器

地址:https://apps.nextcloud.com/apps/jsloader

配置截图:

代码:

const script = document.createElement('script');
script.defer = true;
script.src = 'https://umami.yowe.net/script.js';
script.setAttribute('data-website-id', 'xxxxxxxxxxxxxxxx');
document.head.appendChild(script);