保护JavaScript代码

时间:2017-01-29 07:44:24

标签: javascript security

我正在尝试找到一种方法来保护/隐藏/加密我的JavaScript代码。通过一些研究,我得到你不能那样做。我发现只有你可以缩小代码并做其他一些技巧。但是在Facebook中,如果您尝试检查元素或尝试调试,则会在控制台中收到消息,您无法看到任何代码。 我怎样才能做到这一点? 安全吗? 我正在使用fire base,我使用JavaScript来获取数据和身份验证。确保我的代码受到保护非常重要。

4 个答案:

答案 0 :(得分:8)

您无法保护JS代码 - 它驻留在客户端上,需要浏览器可读。你可以对它进行模糊处理,但就是这样。如果您有想要保护的IPR,请将其保留在服务器端。

另外,请不要使用JS进行任何形式的身份验证!同样适用于数据验证 - 当然,使用它来快速进行客户端错误突出显示,但也可以通过服务器端验证来补充它。

否则,任何使用Burp Suite等工具的人都会有一个实地日。

答案 1 :(得分:1)

你不能。您可以缩小或使用其他混淆技术,但最终,源始终可用,否则浏览器将无法运行它。因此,请勿尝试进行任何与服务器通信以进行验证的身份验证或安全措施。

Facebook也不会隐藏他们的来源。我假设您正在谈论停止!消息。

enter image description here

这只是他们在控制台中使用带有样式的console.log()命令打印的消息。这是一个警告,以防止天真的最终用户将代码作为骗局的一部分运行。

要查看HTML,只需点击Chrome开发者工具中的Elements链接即可。

enter image description here

或者只使用view-source: $size之前的任何网址作为前缀。

答案 2 :(得分:0)

我只想与遇到相同问题的所有人分享,Firebase为您提供了为应用程序设置规则的选项。 https://firebase.google.com/docs/database/security/quickstart

答案 3 :(得分:0)

Facebook的控制台消息只能在“控制台”选项卡中查看。打开“元素”选项卡将显示页面源。

请记住,您不能完全保护您的代码,但是您可以 阻止代码的复制。

问题是:如何确定潜在的代码窃贼?经过足够的确定,可以规避前端代码上的所有安全措施。

最简单的两个选项是:

1)使用混淆

2)域锁定您的Javascript

  • 有免费的基于网络的域锁,例如DomainLock JS(这些代码会使您的代码在未经授权的域上无法使用)。

为获得更强大的安全性,您需要与服务器通信以检查凭据。没有任何仅客户端方法真正安全。

也有一些高级选项可以提供更高级别的混淆功能,但我在这里不会提及它们-对于基本威慑,它们不是必需的恕我直言。