javascript - 保护 Meteor/Node 服务器的最佳实践

标签 javascript linux node.js security meteor

<分区>

保护 Meteor.js 应用程序的最佳实践是什么,假设我们已经处理了 CSRF 攻击,进行了适当的用户输入验证,删除了 auto-publishinsecure包?

最佳答案

您似乎已经完成了大部分工作。

另外:

  • 不要忘记在您的 Meteor 应用(支持 websockets)前使用 SSL 代理。
  • 确保您的数据库只能由您的 meteor 应用访问(防火墙 ip 限制)。
  • 如果您有任何 Meteor 方法,请确保检查运行它们的用户是否有权这样做,尤其是在您更改数据库时。
  • 如果您使用非 meteor 包进行身份验证/用户管理,请确保密码未以纯文本形式存储。
  • 在所有 Meteor 方法、发布函数以及允许和拒绝规则中使用 check 以确保强制执行数据类型及其结构,这样就不会造成任何其他损害。使用 audit-argument-checks 包也可以帮助您严格执行此操作。
  • 确保您的 Meteor 服务器的时间是正确的。
  • 在您的服务器端,请确保在不使用 var 关键字的情况下不要在闭包内声明变量(因为变量可能会在用户之间跳转)。
  • 确保您始终处理在服务器上找不到文档的情况(即不要执行 collection.findOne(xx).yy(因为这可能会崩溃并泄露信息,您应该首先检查文档是否存在)。
  • 确保 eval 没有在任何地方使用(我认为一个应该足够明显) - 特别是对于 meteor 因为东西在 eval 中运行,例如全局范围的变量,即使来自一个项目,也可以在任何地方访问(这与仓库引擎系统的工作方式背道而驰)。
  • 永远不要向任何客户端发布服务(在用户集合中),只发布其中的一个子部分而没有设置resume。 (这有时是通过第 3 方登录完成的,以向客户端公开更多用户信息,但它可能会泄露太多)。

不确定其他的,主要的是删除 insecureautopublish 包以制定您自己的规则。

抱歉,这看起来不太好,我不确定如何在每个项目下方放置一个空格。

关于javascript - 保护 Meteor/Node 服务器的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21722463/

相关文章:

javascript - CSS 和 javascript 中的 (Chromium) alpha 颜色值(在 rgba 中)

JavaScript 搜索未按预期工作。如何解决?

javascript - 使用 kotlinx.html DSL 创建 CSS 类

javascript - Ext.js 确认方法添加换行符

linux - fork() 和共享变量

linux - 如何使用 linux 设备模型和/sys 文件系统?

linux -/boot/.IpTables 在我的服务器中使用高 CPU

node.js - 如何在 nextjs 自定义服务器中删除 x-powered-by header

node.js - 在没有 sudo 的情况下安装 Node.js/npm 的最佳方法

javascript - 生产模式下的CompoundJS渲染网页而不是检索JSON数据