2009-10-27 102 views

回答

8

最好的办法是在加载dom树后立即删除脚本标记,或者在javascript中动态创建脚本标记。

无论哪种方式,如果有人想使用Web开发工具或Firebug,他们仍然会看到JavaScript。如果它在浏览器中,它将被看到。

动态创建脚本标记的一个优点是,如果javascript被关闭,您将不会加载JavaScript。

如果我关闭了JavaScript,我仍然可以在html中看到所有内容,因为您将无法删除脚本标记。

更新:如果你把<script src='...' />,那么你将不会看到JavaScript,但你看到的JavaScript文件的URL,所以它只是一个是到地址栏,你D/L的JavaScript粘贴的事。如果您动态删除脚本标记,它仍将位于查看源代码中,但不在萤火虫的html源代码中,并且如果您动态创建标记,则萤火虫可以看到它,但不会在View Source中看到它。

不幸的是,正如我所说的Firebug总能看到JavaScript,因此它不从那里隐藏。

唯一一个我没有尝试过,所以我不知道会发生什么,如果你D/L的JavaScript作为Ajax调用,然后执行Exec使用上,运行它。我不知道这是否会出现在任何地方。

+1

我很好奇downvote,因为动态生成意味着它不会出现在'View Source'中,这是个问题。 – 2009-10-27 04:44:43

+0

我没有倒下你,但要补充,它会显示在Firefox的右键点击'查看选择源' – alex 2009-10-27 04:57:31

+0

是不是我,但同样的效果会发生,如果你只包括

4

这几乎是不可能的。如果有人想要你的源代码,并将它包含在一个页面中,他们将会得到它。

你可以尝试捕捉右键单击和各种其他hokey的方式,但最终如果你正在运行它,任何人与Firefox和100K下载(萤火虫)可以看看它。

4

你不能,对不起。不管你做什么,即使你可以阻止人们查看源代码,用户也可以使用curl或任何类似的工具手动访问JavaScript。

尝试一个JavaScript minifierobfuscator如果您想让人们更难以阅读您的代码。无论如何,缩小器都是一个好主意,因为它会减小你的下载量并加快你的页面加载速度。混淆器可能会提供更多混淆,但最终可能不值得。

9

你不能隐藏的代码,JavaScript在浏览器上解释。浏览器必须解析并执行代码。

您可能想混淆/缩小您的代码。

推荐资源:

请记住,JavaScript的的目标微小减少代码下载大小去除的意见和不必要的空格从您的代码,迷惑也使缩小,但标识符名称被改变,使您的代码更难以理解,但最终混淆只会给你一个隐私的错觉。

+0

这个答案比赢家更公平。就是这样:你不能隐藏代码,Web工具能够看到脚本,因为至少有一个脚本被下载和执行。这就是我一直在寻找的东西。谢谢 – LMG 2014-03-23 13:57:26

3

萤火虫可以显示模糊,和卷曲可以得到去除DOM元素,同时检查引荐可以伪造。

士气?为什么试图甚至隐藏JavaScript?包含一个简短的版权声明和作者信息。如果你想隐藏它,比如说认证系统不能被黑客入侵,可以考虑加强服务器端,这样服务器上就不会出现任何通过JavaScript关闭的空洞。头部和请求很容易通过卷曲或其他工具伪造。

如果你真的想隐藏的JavaScript ...不使用JavaScript。使用合适的排序语言(java applets,flash,activex)等等(我不会这样做,因为它与原生javascript相比不是一个很好的选择)。

1

不可能。

如果你只想隐藏你从用户的业务逻辑和客户端的HTML控件不操纵比你可以使用服务器端编程与阿贾克斯。

+2

我想你会混淆他的这个答案。 – KyleFarris 2009-10-27 05:37:16