2011-08-08 50 views
1

我的理解是,只有在HTML页面中内嵌放置的JavaScript代码会显示,永远保存在.js文件混淆:javascript.js代码在Chrome中显示?

代码...我从来没有在任何浏览器的代码出现在.js文件上显示客户端...
直到我开始使用Chrome,并注意到我所有的代码都可以查看?

  1. 我是否一直在说服自己,在.js文件中的代码是安全的,实际上它从来没有?

  2. 虽然在这个问题上,响应者可以完全清楚.js文件中的代码是否可以隐藏。 我读过很多文章,让我怀疑它是否可以完成。

。有人说把它放在服务器上的.js文件中,以便它在服务器上执行...
---使用'language = javascript'和带有'runat服务器'的html行?不知道该怎么做。
---但是,这不会打败速度的目的,并刷新,因为服务器已被访问? (C#,VB,PHP,...)

。不妨在代码后面加上代码吧(C#,VB,php,...)
有人说使用AJAX调用等......但似乎有人反驳说,无论如何说代码落在客户端,因此会显示? ...我假设这将是一个没有页面重绘的回调...

+0

它的开发者工具的一个有用的功能,如果浏览器可以看到一个文件,这样任何人都可以 - 只要复制/粘贴的的src网址。 js的脚本元素 –

+1

JavaScript在客户端上运行。您是如何期望客户端没有运行代码? –

+0

Martinho ...touche,但'拥有它'并不强制意味着浏览器在处理内联代码时会像.js一样处理内联代码。 –

回答

0

即使Javascript文件在.js文件中是唯一可以做的事情,但它可以使它难以理解的是缩小js文件。

0

实际上,存储在分离文件中的javascript代码不会直接显示;用户必须在地址栏中明确键入文件的名称以查看其内容。

如前所述,隐藏它的唯一方法是缩小压缩文件并使其无法读取的文件。

+0

你的第一个陈述是不正确的,浏览器工具显示完整的代码。你的第二,缩小并不会让人难以理解,解析它只会更困难 –

+0

当然,如果你使用工具,你会看到它;但在问题中没有提到的工具... 而我错误的缩小,这是真的:) – gobes

4

JavaScript在浏览器中执行,这意味着脚本必须提交给客户端。所以,当然任何人都可以查看代码,它是否在开发人员工具中发生,从HTML中获取直接链接,或者例如使用http嗅探器。

尽管如此,还是有一些方法可以使脚本对人类不可读。 缩小脚本是一个很好的习惯。它减小了文件大小,所以客户端必须下载更少,加快加载时间。毕竟,这并不能真正帮助用户使您的脚本“无法读取”,因此网络上有很多的清理服务。

不过,还有另一种方法:obscurifying(或混淆)你的脚本。这取代了代码以使其不可读。不幸的是,我真的没有使用这种技术的经验,所以我不知道它会如何影响js代码的性能。

也许你想看看这个:How can I obfuscate (protect) JavaScript?

+0

mnifying只不过是一个皮棉类型的过程,因此在这种情况下无用。混淆也是无用的,因为它不会阻止被认定的攻击 –

+0

请记住,要权衡时间和麻烦,必须通过使用文件进行部分隐藏游戏,这些文件的格式很好,可以有效地进行编码,并且文件可以长时间连续字符串是不值得的努力,除非代码被保证隐藏。 –

+0

THUS,以简化任何其他查询答案: 不,客户端代码(javascript或其他)不能被隐藏。 辩论结束... –