如何保护javascript代码不在其他域上运行(被盗)?需要更多的想法吗

如何保护javascript代码不在其他域上运行(被盗)?需要更多的想法吗,javascript,security,obfuscation,Javascript,Security,Obfuscation,首先,这看起来像是重复的 还有其他的,但不是 我在寻找可以做到的想法,窃取JS可能非常困难 我举了一些例子: 当然,混淆代码 使用文档。位置检查 域中的字母等于脚本所在位置的字母 正常工作 在函数调用中使用此位置的一部分,例如eval('first_part_of_function_name'+part_from_location+'third_pard(parameters)') 在页面设计的某个元素中存储应用程序中一些重要的常量需求,然后在JS中获得它,如$('#header div.o

首先,这看起来像是重复的

还有其他的,但不是

我在寻找可以做到的想法,窃取JS可能非常困难

我举了一些例子:

  • 当然,混淆代码
  • 使用
    文档。位置
    检查 域中的字母等于脚本所在位置的字母 正常工作
  • 在函数调用中使用此位置的一部分,例如eval('first_part_of_function_name'+part_from_location+'third_pard(parameters)')
  • 在页面设计的某个元素中存储应用程序中一些重要的常量需求,然后在JS中获得它,如
    $('#header div.onright a rel')
  • 通过AJAX和
    eval()
    it获取脚本的某些部分
  • 在脚本中添加一些不必要的函数、指令
  • 检查页面中是否存在某些元素(页脚上的版权文本)
  • 在PHP中生成一些时间变量散列并放入JS,其中的函数将检查该散列和当前工作时间
  • 可能使用其他JS文件?或者绑定到隐藏在非常常见脚本中的元素的事件(比如绑定jquery-min.X.X.X.js文件中的某个操作,所有jquery都在该文件中)

它们是好主意吗?还有一些吗?我认为最重要的是你可以在文档位置上做各种各样的事情,这是唯一比在我们的网站上以正常的编码工作更简单的元素吗?

无论你的代码有多复杂,只要有必要,它总是可以被读取的,即自动捕获代码的本质。不了解内部结构、变量名(我假设您已经在使用最小化,例如)的代码、文档、支持和泛化对于其他任何人来说都是毫无价值的


如果是竞争对手(或潜在客户)你的代码是窃取你的代码,考虑简单地起诉他们。如果它是一个随机的家伙在互联网上,为什么你在乎?< /P> < P>一个工具> < /P>你可能连一个句子都读不到……我读了大部分的问题,但是我也没有看到你的推理,为什么它不是一个复制品,我也没有找到自己做。您列出的内容只是(琐碎的)混淆形式(通常会影响性能)?真的吗?这更可能暴露XSS漏洞,然后阻止他人重用您的代码!但是,这是为了做一些事情,脚本解码将需要几十个小时,因此从头开始编写脚本将更加困难。这是关于有人可以将我的应用程序带到本地主机上使用,所以我甚至不知道它已被删除stolen@killer_PL有很多方法可以让解码耗时10个小时,但这些方法也适用于其他任何使用该网站的人。我不想把它告诉你,但首先它是值得偷的。如果某个随机的孩子在他的geocities主页上使用它,你为什么会在意呢?因为它必须是一项服务(在线编辑)其中99%是JS,将按月支付。@killer\u PL那么你的产品的价值在于良好的用户界面、良好的协作和有组织的数据存储。如果有人只是想要一个编辑器,下载和安装TinyMCE比复制你的编辑器更容易。这与文本编辑器无关,这在这个脚本中是特别的(据我所知,这样的工具并不存在)。