源代码可在Chrome JS控制台中查看

时间:2016-01-19 16:21:44

标签: meteor

在任何地方都没有找到答案,所以我会尝试SO ...

当我在localhost上运行我的Meteor应用程序并导航到我的Chrome JS控制台时,在“Sources”选项卡下,我可以在我的lib文件夹中看到我的代码的完整源代码。

我将大部分代码放在我的meteor应用程序的lib文件夹中,因为必须先将代码加载到其他任何内容之前,以便我的客户端模板中的所有内容都能正确呈现。自从我几个月前开始构建应用程序以来,我已将它放在lib文件夹中。

无论如何,如果应用程序在没有不安全的软件包的情况下投入生产,源代码是否会像这样可见?或者我是否会被迫将代码移到客户端并重新配置我的整个脚本?

3 个答案:

答案 0 :(得分:2)

  1. 将要隐藏的服务器代码放在/server
  2. 下的客户端中
  3. 将需要在/lib
  4. 下的客户端和服务器上运行的代码放入
  5. 将仅限客户的代码放在/client
  6. 不要在任何代码中放置机密(例如:身份验证密钥)。使用环境变量或config.json文件。
  7. 不安全 autopublish 软件包与javascript代码可见性无关,仅与集合数据有关。
  8. 正如@Kyll所说,所有客户端和lib代码都将被缩小并连接成一个巨大的文件,并且对所有客户端都可见。 js可以被缩小,但当然不会恢复原始变量名称或任何注释。攻击者可以单步执行客户端代码,保存它,并且通常可以随意对其进行反向工程。这并不意味着它很容易。

    您可能会发现these resources有帮助。

答案 1 :(得分:0)

用户将始终能够通过控制台查看所有客户端代码,这就是为什么任何安全相关应该只是服务器端。我会把它分成服务器和客户端目录以及server / lib和client / lib(如果需要)。

答案 2 :(得分:0)

存在时不安全可帮助您无限制地从客户端访问数据库。 (控制台互动)。

删除后,它将撤销客户端可能对db进行的所有访问,并且与db进行交互的唯一方法是在Meteor方法和调用的帮助下。

您可能还需要删除自动发布,并将其替换为Meteor.Publish和Meteor Subscribe。

请查看以下链接以获取更多信息 https://www.meteor.com/tutorials/blaze/security-with-methods https://www.meteor.com/tutorials/blaze/publish-and-subscribe

希望这有助于