Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止JavaScript代码被窃取、复制和查看?_Javascript_Security - Fatal编程技术网

如何防止JavaScript代码被窃取、复制和查看?

如何防止JavaScript代码被窃取、复制和查看?,javascript,security,Javascript,Security,我知道100%的保护是不可能的,但对于大多数用户来说,一些高或低的保护是可行的 例如,我遇到了一个站点,查看当前页面的源代码时没有返回任何内容 在另一种情况下,访问或尝试从浏览器下载.js文件本身 , 会改变你的方向 如果你混淆了你的代码,解码会很困难吗?如果是这样的话,这也是另一个很好的解决方案(推荐什么软件)?尤其是在现代浏览器中,这完全是浪费时间 我可以使用Firebug查看一些秘密。js。。。至于另一个,如果你向下滚动,你会看到源代码 您可以缩小或模糊您的代码,这将使它很难修改(但不采取

我知道100%的保护是不可能的,但对于大多数用户来说,一些高或低的保护是可行的

例如,我遇到了一个站点,查看当前页面的源代码时没有返回任何内容

在另一种情况下,访问或尝试从浏览器下载.js文件本身

,

会改变你的方向


如果你混淆了你的代码,解码会很困难吗?如果是这样的话,这也是另一个很好的解决方案(推荐什么软件)?

尤其是在现代浏览器中,这完全是浪费时间

我可以使用Firebug查看一些秘密。js。。。至于另一个,如果你向下滚动,你会看到源代码


您可以缩小或模糊您的代码,这将使它很难修改(但不采取确切的副本)。建议缩小,因为这将导致页面加载速度稍快。

如果您拥有服务器,则可以拒绝来自除您自己的主机名以外的其他引用方的访问。在Apache上,您可以通过.htaccess来实现这一点

您还可以使用打包生产Javascript代码


但请注意,使用Firebug或其他调试工具,大多数人仍然可以通过DOM选项卡/检查器查看代码。

您可能会混淆Javascript。在野外有很多工具可以做到这一点,例如。但是,这并不会阻止任何人看到代码,反而会使代码更难阅读。

这根本不可能

为了让访问者的浏览器能够执行脚本,他们必须能够下载脚本。不管你试图用JS、服务器权限等耍什么花招,到头来,它们总是可以
wgethttp://example.com/yourcoolscript.js
。即使他们不能(例如,您需要该请求的“机密”标题),这可能会抑制大多数浏览器的行为,同时不会阻止一个有决心的人查看

基本上,由于JS是在客户端执行的,因此客户端必须能够访问“原始”JS文件

您可以做的一件小事是模糊处理,这会有一点帮助。但是由于JS是解释的,所以它也是它自己的DeobFousator——请参见示例


基本上-“如果你建造它,它们会看起来像。”——)

不要浪费你的时间。如果浏览器可以下载它来运行它(而且可以,否则代码就没用了),那么可以编写一个程序来下载并保存它

我们一次又一次地看到,用技术手段来保护这样的东西是行不通的

你真的认为你的JS代码是如此珍贵以至于需要这样的保护吗?一旦你让它工作起来,尽一切办法通过一个迷你程序运行它,如果只是为了加快下载过程。但是关于保护它,我会集中精力在你做得最好的事情上(我假设这就是对它进行编码)


如果您确实需要保护代码不被查看,请不要在客户端JS中这样做。把它放在服务器上,只需使用JS与之通信。

有两种用户:一种是不在乎的大群体。没有必要保护他们

然后,有一群人真的想看看你是怎么做到的。没有办法防止他们。他们有所有的工具和知识来规避任何你能想到的保护。您可以使用模糊处理,但这将花费您的金钱和时间,因此最终,您只能失败

创造一个伟大的产品,并提供良好的支持,人们将愿意为此付出代价。城堡建筑在过去不太好用(花了很多力气,只需要几块石头就可以把它们拆掉了),现在肯定不管用了


如果你担心你的想法会被窃取,那就去找一份新工作,因为他们会被窃取,而你无能为力。

如果你有大秘密,就把它们保存在服务器上。

然后将所有JS文件捆绑在一个文件中,使其变得模糊。
这应该可以防止很多人走得更远,并减少大小和http调用。
但这并不能阻止真正的坏人

我们正在构建一个JS重磅应用程序,并在很久以前治愈了这种妄想症。
事实上,我们做的恰恰相反

既然没有什么可以保护,为什么不开放源代码有用的部分并从其他人那里获得反馈呢?

试试看,你不会失望。

一个想法是使用websockets通过
socket.listener
向浏览器提供javascript文件,并使用
eval
运行。这样,任何人都很难看到实际的“源”,因为套接字的连接已经关闭

在,的主页上可以看到另一个惊人的策略,它使用空格(\u0020)和制表符(\u0009)作为字节密码来隐藏JS代码

如果查看源代码,您只能看到1行实际的JS代码: 看看你自己,如果你能弄清楚它是如何工作的(没有破坏者!)

关于模糊处理程序,请参阅(和/或其他版本)

这个免费的模糊处理程序运行客户端,产生的乱码
unnify.com
jsbeautifier
甚至无法解码:

$=~[]$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$};$.$_=($.$_=$+"")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._=(!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+(![]+"")[$._$_]+$.$$$_+"\\"+$.__$+$.$$_+$._$_+$.__+"(\\\"\\"+$.__$+$.__$+$.___+$.$$$_+(![]+"")[$._$_]+(![]+"")[$._$_]+$._$+",\\"+$.$__+$.___+"\\"+$.__$+$.__$+$._$_+$.$_$_+"\\"+$.__$+$.$$_+$.$$_+$.$_$_+"\\"+$.__$+$._$_+$._$$+$.$$__+"\\"+$.__$+$.$$_+$._$_+"\