问题
我编写的油猴脚本中引用了来自 Github
的 JavaScript
脚本:
//@include https://cdn.jsdelivr.net/gh/nwcell/ics.js@0.2.0/demo/ics.deps.min.js
但是当我更新我的脚本代码时,Greasy Fork 提示我不允许引用这个外部脚本。
报错信息
An error is reported when quoting an external minimized script.
引用来自外部的最小化脚本时报错
原因
An error is reported when quoting an external minimized script.
引用来自外部的最小化脚本时报错
这是 Greasy Fork 的安全策略导致的(避免恶意修改外部脚本达到攻击目的),为了解决这个问题,我们需要更改引用外部脚本的方式。
Greasy Fork 限制了对外部脚本的引用,只允许在特定情况下使用外部代码,详细信息请参考:https://greasyfork.org/zh-CN/help/external-scripts
解决方案
引入的 JS 文件需要使用完整的提交哈希,而不是版本标签。这是因为 GitHub 允许在不同版本标签之间切换,可能会导致库在之后被悄悄替换为后门或恶意软件。而使用显式的提交哈希则可以让这些更改可检测。
要找到完整的提交哈希,你可以访问对应文件的 GitHub 页面,按下 y
键查看文件时,地址栏中会显示完整的提交哈希。另外,它也可以在 Latest commit
后的链接中找到。
示例:
-
打开 https://github.com/nwcell/ics.js/blob/master/demo/ics.deps.min.js
-
页面按下
y
键 -
地址栏会出现带
Hash
值的文件链接,复制Hash
值 -
将版本号
0.2.0
替换成Hash
值// 原来的链接 //@include https://cdn.jsdelivr.net/gh/nwcell/ics.js@0.2.0/demo/ics.deps.min.js // 替换后的链接 //@include https://cdn.jsdelivr.net/gh/nwcell/ics.js@dfec67f37a3c267b3f97dd229c9b6a3521222794/demo/ics.deps.min.js
-
通过这样的方式,能够符合 Greasy Fork 的安全策略并顺利引用外部脚本。
免费 CDN:jsDelivr + Github 用法
官网:
https://www.jsdelivr.com/?docs=gh
使用方法:
https://cdn.jsdelivr.net/gh/你的 Github 用户名/你的仓库名@发布的版本号/文件路径
要符合 Greasy Fork 的安全策略改为:
https://cdn.jsdelivr.net/gh/你的 Github 用户名/你的仓库名@提交的 Hash 值/文件路径
最新评论
重新买,是不是我之前的文件配置啥的要重新整对吧?就是之前的对应配置文件的ID值要重新弄?
有快3个月了没续费了,如何重新激活我的服务?
楼主,有一点不明白: “准备好你的服务器,确认账号(一般是 root)和密码,系统建议 Centos7 ×64+、Ubuntu、Debian”是指自己要准备一台安装了上述系统的电脑做服务器还是指购买的
网上一堆的节点怎么填写,看不懂得
请问证书会过期嘛?要怎么处理
好怕被墙,vmess+ws