为什么 Bing 混淆了他们的 JavaScript?
-
21-08-2019 - |
题
我像往常一样上网,想看看 必应的源代码,因为我很好奇,想知道他们使用什么来使图像淡入。我对只能通过以下行限定的内容感到惊讶:
神圣的文字墙!
这让我想知道像这样混淆 (X)HTML、CSS 和 JavaScript 是否有任何优势?也许是为了减小文件的大小?
编辑 :环顾四周后,我意识到这是一种很常见的做法。以前从未从缩小的角度看过它!
其他提示
混淆代码的两个主要原因:
减少文件的总大小(就像您提到的)如果您用“C”替换名为“CallThisFunctionAndReturnAnArray”的函数 - 您已经在文件中保存了很多字符。
保护知识产权——虽然这是否现实肯定值得商榷,但这是这样做的常见理由。您可以使用好的工具来解决这个问题,或者如果您真的很聪明的话。
文件大小将一定是一个好处,以至于例如Gmail的本身不仅确实如此还要拉链其内容。
有绝对的优点此。还有就是要注意,虽然一些重要的东西。没有理由实际上像这样的代码。相反,你完成做的事情(和良好的可读的形式写入)后,使用minifier删除不需要的空白和这样。对于较大的文件这样可以大大减少的加载时间。
我会回答说,“模糊”是不是在这些情况下的目标,但带宽的。如果你是在这样的速度服务于高速缓存的内容,减少网页的大小将是有益的,那么它的不的道理这样做。
至于混淆转向远离窥探 - 号不要做
仅减小尺寸,并且只在大的模块。更大的增益可以使用gzip来实现。
如果你使用任何第三方代码,您可能会被要求离开他们的版权/许可证评论完好无损时,您压缩。人们常常会忘记这样做。你可能要离开自己的版权意见完整了。
是,文件大小减小。
是。减少文件大小不仅减少了下载时间,而且还分析时,这是在某些浏览器是非常有用的(特别是魔鬼催生IE6)。
这可能想重新标记缩小。
我要提请优化之间的差以减小文件大小和模糊处理以防止(或至少使硬)逆向工程的预期目的。此外,谷歌例如具有延伸JavaScript以包括一些先进的类型的系统等的“编译”;而这个扩展的代码,然后“编译”成常规的JavaScript。显然,这是有意义的以优化的方式创建此生成的代码 - 没有必要使其维护
和它使我不知道是否有任何优势来混淆你的(X)HTML,CSS和Javascript这样吗?或许减小文件的大小?
模糊处理是略从与Javascript文件,缩小另一种常见的技术不同。缩小与JavaScript常见的,因为它减少了文件大小,它与大文件可以显著降低它们的大小(因为大JavaScript文件通常包含大量的注释,换行,不需要的空间等等,可以被剥离,以减少大小的脚本)。
模糊处理,而另一方面,也更多的隐藏的代码别人,通过改变变量名给别人这是模糊的,或者删除从Javascript文件的意思。然而,这样做往往减小文件大小,因为变量名称往往比那些原始文件短得多。这是一种常用的技术,以使其更难为他人简单地复制代码,并且更有关保护这显然是更容易接近相比其他平台的代码。
这样做既缩小和模糊处理有利于你的脚本,因为它们减少JavaScript文件的大小,从而减少加载页面所花费的时间,同时也使得它很难为他人反向工程(如果这是一个问题的代码)。
但是:注意它的的不的万无一失 - 有存在一定的工具,这使得它更容易进行逆向工程混淆代码,因此它并不能使100%安全从别人谁真的想看看你的脚本是如何工作的。