在混淆Javascript代码之前的先决条件?

时间:2013-06-07 21:50:27

标签: javascript jquery html5 obfuscation deobfuscation

我为JavaScript尝试了不同的混淆工具,但是当我使用结果时它不起作用。

我删除了所有评论,单行和多行注释,并美化了代码,以便使用正确的分号和正确的格式。

我的问题是:在混淆代码之前有哪些先决条件?

2 个答案:

答案 0 :(得分:0)

如果您的代码在调试时没有任何错误或警告,那么它应该进行模糊处理。阅读有关您正在使用的工具的更多信息,以确保它支持您的JavaScript实现。

答案 1 :(得分:0)

  • 确保您的代码在立即调用的函数表达式中运行(参见下面的示例)
  • 不要依赖全局变量(或明确地将它们传递给下面的$)
  • 使用传入的对象创建任何全局公开的对象/方法(window.somename = {})
  • 使用事件绑定,而不是html标记中的*属性。

如果您的代码可以在相对隔离的情况下运行,那么它应该能够很好地混淆......

示例:

(function(window, $){
  //your code here

  //create global namespace - expose classes/methods
  window.MyProject = {
    someMethod: someInternalMethodToExpose
    SomeClassName: SomeClass
  };

  //internal stuff
  function someInternalMethodToExpose() {
    ...
  }

  //constructor function
  function SomeClass() {
    ...
  }
  SomeClass.prototype.someMethod = function() {
    ...
  }
}(window || this, jQuery));