我正在编写一个生成一些数据的javascript。我打算将它用作免费的Web应用程序,对所有想要使用它的人开放。
但是我花了很多时间和精力来编写这个脚本(主要是因为我希望它可以用于个人用途,而且我找不到任何有效的功能并且恢复原状)。我是初学者,我知道不可能保护或混淆脚本,因为你甚至不需要其他应用程序来解码混淆信息,有很多方法,最懒的只是找到js中的“eval”字样文件并将其替换为“alert”。当您打开html页面热潮时,您会收到一个弹出窗口,其中包含所有已解码的代码......
我要问的是,如果用户在浏览器中“保存为...”页面时无论如何都要阻止javacript和css文件保存在结构中。 在过去我试图用浏览器保存一些页面,我只能保存html文件(有时甚至没有所有的html信息,我怀疑有iframe),没有js和没有css ...我尝试了一些网站下载(sitesucker,deepvacumm等),甚至没有这个下载我能够下载文件。唯一的方法是“检查”页面并手动下载并手动创建文件夹结构。
正如我所说,我想把这个剧本作为一项服务完全免费(我甚至会为它购买一个域名),因为我是用爱来制作的。我唯一的要求(获得某种个人自豪感)是当人们想要使用它时,他们来到我的网站并实时制作,如果他们“保存为...”页面,他们可以保存生成的信息不保存脚本,所以他们再次回来使用该服务。
是否有人可以提供一些提示和信息。链接,建议,专业和个人技巧?
答案 0 :(得分:2)
我认为无法阻止在浏览器中访问Javascript代码。我还认为通过缩小JS代码,例如使用Google的Closure编译器(ADVANCED选项),您可以尽可能地保护您的代码。尽管可以按原样复制代码,但是无法通过合理的努力来理解或修改代码。
答案 1 :(得分:0)
您可以通过一个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>
}
答案 2 :(得分:0)
将代码转换为服务器端脚本(PHP,Python,C#等)。这是确保您的用户无法“窃取”您的工作的唯一方法。
JavaScript必须最终由我的浏览器解码,在那一刻,我也可以使用它,并且没有办法阻止它,你只能让它变得更难。
但最重要的是:你为什么要这样做?如果您只想要“个人自豪感”,那么将代码上传到github或SourceForge这样的协作网站会不会更好,在这种情况下,其他人可以欣赏您的工作,甚至可能会为此做出贡献?
此外,如果您在GPL或CC等许可下共享您的代码,那么重复使用您的代码的每个人都必须给予您信任(是的,您可以简单地窃取它,但在您的情况下也可以这样做)。
答案 3 :(得分:0)
您的问题确实没有技术解决方案:如果用户可以执行您的javascript,他们将不得不以某种方式下载它。无论选择何种解决方案,任何对Firebug或Webkit检查器有足够了解的人都能够检索脚本。你可以对它进行模糊处理,但它不会阻止任何人按原样使用它。
您的问题的解决方案是合法的,而不是技术问题。如果您在Javascript标头中明确声明该脚本受到限制性许可,那么复制它的任何人都将违反法律。如果你发现有人这样做,你可以:
(顺便说一下,如果我可以在这里发表个人意见,那么在赠送任何人可以重复使用的代码方面都有很多个人的自豪感......你可以在你的网站上包含你的名字和链接。脚本的标题:删除归属和版权声明被认为是非常糟糕的形式(并且可能是非法的))