我有一个JavaScript库,我想分发给客户,以便通过他们网站上的脚本标签使用。
我的项目不是开源的,所以我不能使用像jsDelivr这样的开源服务。
我正在考虑使用Firebase(我希望他们有好的CDN(托管,在那里我可以上传我的脚本,然后其他网站可以直接访问。这是一个可行的解决方案吗?或者对于这个用例是否有其他/更好的服务?
Firebase Hosting对部署的文件没有访问控制。这意味着,就像在任何公共CDN上一样,任何知道文件URL的人都可以访问它
如果你不想公开共享代码,你可能不应该把文件放在任何CDN上。将代码直接分发给您的客户将是最合乎逻辑的选择。然后,他们会将代码直接包含在构建过程中,而不是从CDN中实时提取代码。
但是,如果你想从CDN中提取它,你能做的最好的事情就是使用一个不可访问的URL。通常是非常长和随机的东西,比如http://mycdn.com/path/to/file/unguessableFDJIQRE(@#(U/index.js
。这确保了随机用户不太可能找到文件,只有知道文件是否存在的用户才能获得它。也就是说,在这里,任何知道文件URL的人都可以访问它。
这里有一些策略:
-
Uglify/最小化您的JS脚本。用户仍然可以读取它,但这将很困难,因为所有变量名称都将被替换为不可读的名称。也就是说,对一个拙劣的脚本进行逆向工程是绝对可能的。
-
使用JS模糊处理程序,它会更进一步,将您的代码重写为几乎无法加密的代码。
-
设置一个需要身份验证令牌才能提供脚本的静态Web服务器。除非你的客户端传递了一个有效的auth头,否则他们会得到一个404。