环境
版本: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);