Javascript缓存和保护

Javascript caching and protection?

本文关键字:保护 缓存 Javascript      更新时间:2023-09-26

我正在编写一个生成一些数据的JavaScript。我打算把它作为一个免费的web应用程序,向所有想要使用它的人开放。

但是我有很多的时间和精力来写这个脚本(主要是因为我想要它个人使用,我找不到任何有效的和恢复为这个)。我是一个初学者,我知道保护或混淆脚本是不可能的,因为你甚至不需要其他应用程序来解码混淆的信息,有很多方法,最懒的就是找到&;eval&;将js文件中的Word替换为"alert"当你打开html页面boom,你会收到一个弹出窗口与所有解码的代码…

我想问的是,当用户"另存为…"时,是否有办法防止页面与浏览器,JavaScript和CSS文件不保存在结构中。在过去,我试图用浏览器保存一些页面,我只能保存html文件(有时甚至没有所有的html信息,我怀疑有iframes),没有js和css…我尝试了一些网站下载器(sitesucker, deepvacuum等),甚至没有这个下载器,我能够下载文件。唯一的办法就是"检查"。该页面并手动下载,并手动创建文件夹结构。

就像我说的,我想给这个脚本完全免费的服务(我甚至会为它买一个域名),因为我用爱做的。我唯一的要求(为了获得某种个人自豪感)是,当人们想要使用它时,他们来到我的网站并实时制作它,如果他们"保存为……"该页面,他们可以保存生成的信息,不保存脚本,所以他们再次回来使用该服务。

有没有人可以提供一些提示和信息。链接、建议、专业和个人技巧?

我认为阻止访问浏览器中的Javascript代码是不可能的。我还认为,通过最小化JS代码,例如用谷歌的闭包编译器(高级选项),你可以尽可能多地保护你的代码。尽管代码可以原样复制,但不能通过合理的努力来理解或修改。

您可以通过一个JavaScript文件(加载器)下载所有JavaScript/CSS文件,如下所示。这样,下载者必须先执行JavaScript,然后才能知道包含哪些JavaScript/CSS文件,我认为他们不知道。正如我在评论中所说,我不完全确定这是否有效!

HTML:

...
<script src="loader.js"></script>
<!-- no other JavaScript/CSS here -->
...

loader.js:

window.onload = function() {
    var head = document.getElementsByTagName('head')[0]; // the <head>
    var scriptElement = document.createElement('script'); // create <script>
    scriptElement.src = 'file1.js';
    head.appendChild(scriptElement); // add <script> to <head>
    var linkElement = document.createElement('link'); // create <link>
    linkElement.setAttribute('rel', 'stylesheet');
    linkElement.href = 'file1.css';
    head.appendChild(linkElement); // add <link> to <head>
}

将代码转换为服务器端脚本(PHP, Python, c#等)。这是确保你的用户无法"窃取"你的作品的唯一方法。

JavaScript最终必须由我的浏览器解码,在那一刻,我也可以使用,没有办法阻止它,你只能让它更难。

但底线是:为什么你必须这样做?如果你只想要"个人的骄傲",不如把你的代码上传到像github或SourceForge这样的协作网站,在那里其他人可以欣赏你的工作,甚至可能为它做出贡献?

同样,如果你在GPL或CC许可下共享你的代码,每个重用你代码的人都必须给你署名(是的,一个人可以简单地窃取它,但这在你的情况下也是可能的)。

对于您的问题确实没有技术解决方案:如果用户可以执行您的javascript,他们将不得不以某种方式下载它。无论选择何种解决方案,任何对Firebug或Webkit检查器有足够了解的人都可以检索该脚本。您可以通过最小化来混淆它,但这不会阻止任何人按原样使用它。

你的问题的解决方案是法律上的,而不是技术上的。如果您在Javascript头文件中明确声明该脚本受限制性许可,则任何人复制它都将违反法律。如果你发现有人这样做,你可以:
  • 很好地要求他们从他们的网站删除脚本
  • 威胁起诉?

(顺便说一下,如果我可以在这里给出我的个人意见,我有很多个人的骄傲,在提供任何人都可以重用的代码…你可以在脚本的头部包含你的名字和你的网站链接:删除归属和版权声明被认为是非常糟糕的形式(并且可能是非法的)