我有一个JavaScript库,我想分发给客户端以通过其网站上的script标签使用。
我的项目不是开源的,所以我不能使用jsDelivr之类的开源服务。
我当时正在考虑使用Firebase(希望它们具有良好的CDN)托管,在该托管中我可以上传脚本,然后其他网站可以直接访问该脚本。这是一个可行的解决方案,还是针对此用例的其他/更好的服务?
答案 0 :(得分:1)
Firebase托管对部署的文件没有访问控制。这意味着,就像在任何公共CDN上一样,知道文件URL的任何人都可以访问它。
如果您不想公开共享代码,则可能不应将文件放在任何CDN上。将代码直接分发给客户是最合乎逻辑的选择。然后,他们会将代码直接包含在其构建过程中,而不是将其从CDN中实时提取。
但是,如果要从CDN中提取它,则最好的办法是使用不可猜测的URL。通常是很长很随机的东西,例如http://mycdn.com/path/to/file/unguessableFDJIQRE(@#(U/index.js
。这样可确保随机用户不太可能找到该文件,只有知道其存在的用户才能找到该文件。就是说,这里仍然是任何知道文件URL的人都可以访问它。
答案 1 :(得分:1)
这里有一些策略:
集成/最小化JS脚本。用户仍然可以阅读它,但是很难,因为所有变量名都将被替换为不可读的名称。也就是说,对丑陋的脚本进行反向工程肯定是可能的。
使用JS混淆器,它将更进一步,并重写您的代码以使其几乎无法理解。
设置一个静态Web服务器,该服务器需要身份验证令牌来提供脚本。除非您的客户传递有效的auth标头,否则他们将获得404。