不清楚最近是网络问题还是sendanywhere的服务问题,最近文本文件从pc传手机总有问题。手上的设备并不是每个都能装通讯工具,但是所有设备都能连接公网。
看了下pastebin类的服务,privatebin能生成二维码,能发邮件,基本能满足我的需求 。简单看了github介绍,docker服务搭建也比较简单,cpu可以不考虑,内存有个50-100mb应该也就够了。
docker-compose.yml 基本如下
version: '3'
volumes:
privatebin:
driver: local
pbng:
driver: local
services:
app:
image: privatebin/nginx-fpm-alpine
container_name: privatebin
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- privatebin:/srv
- pbng:/etc/nginx/http.d
ports:
- "9900:8080"
搭建完成后,在 /srv/tpl/bootstrap.php
和 /srv/tpl/page.php
中添加paste服务的plausible统计脚本
<script async defer data-domain="paste服务的域名" src="https://plausible服务的域名/js/plausible.js"></script>
服务启动后问题就来了

由于paste服务和plausible服务的域名不同,这里发生了跨域问题,CSP策略拦截了plausible统计脚本。
简单google了下,找到了相关资料https://git.nolog.cz/NoLog.cz/PrivateBin/commit/e9b10f9e2daa2c0e69f39ca5af8ebf4585337dbb?lang=ja-JP,发现csp是/srv/lib/Configuration.php
中配置的。
知道csp的配置所在的位置就简单了,在script-src
项中添加plausible服务的地址就可以了。
修改后的配置项如下:
'cspheader' => 'default-src \'none\'; manifest-src \'self\'; connect-src * blob:; script-src \'self\' https://plausible服务的域名 \'unsafe-eval\' resource:; style-src \'self\'; font-src \'self\'; img-src \'self\' data: blob:; media-src blob:; object-src blob:; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads',
到此问题解决,plausible可以统计paste服务的访问情况了。
如果你用的是google analytics,处理的方式也是一样的。
如果是其他跨域脚本,参考 https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP 到说明来添加对应白名单就好了。
Be First to Comment