Feathers 安全

我们非常重视Feathers的安全.我们欢迎任何同行评审我们的100%开源代码,以确保没有人的Feathers应用程序遭到入侵或黑客入侵.作为Web应用程序开发人员,您应对任何安全漏洞负责.我们尽最大努力确保Feathers尽可能安全.

我应该在哪里报告安全问题?

为了让社区有时间回复和升级,我们强烈建议您向我们报告所有安全问题.请发送给我们一个PM的 Slack 或发送电子邮件至hello@feathersjs.com,我们将尽快回复.安全问题始终优先于错误修复和功能工作,因此我们将与您一起制定解决方案并计划并在相应的回购中记录Github上的问题.

发布版本通常非常快.一旦问题得到解决,通常会立即使用适当的语义版本发布.

安全考虑因素

在编写应用程序时,您应该注意以下几点,以确保它是安全的.

  • 确保设置正确的 事件频道, 以便只有允许查看它们的客户才能看到实时更新

  • 使用挂钩检查安全角色,以确保用户只能访问应允许的数据.您可以在 feathers-hooks-commonfeathers-authentication-hooks.

  • 通过在钩子中清理 params.query, 将 查询 限制为应用程序所需的用例.

  • 如果 context.id === null 则抛出错误来禁用多个元素更改.

  • 转义任何HTML和JavaScript以避免XSS攻击.

  • 转义任何SQL(通常由SQL库完成)以避免SQL注入.

  • JSON Web令牌(JWT)只是签名,它们 不是 加密的.因此,可以在客户端上检查有效负载.这是设计的. 除非 先加密,否则请勿在JWT payload 中放置任何私密内容.

  • 不要为你的令牌服务使用弱的 secret. 生成器会自动为您创建一个强大的生成器.无需改变它.

我们采用的一些技术

  • @feathers/authentication-local 中的密码存储使用 bcrypt.我们不单独存储盐,因为它们包含在bcrypt哈希中.

  • 默认情况下, JWT’s 存储在本地存储(而不是cookie)中以避免CSRF攻击.对于JWT,我们默认使用 HS256 算法(HMAC使用SHA-256哈希算法).如果您选择将JWT存储在cookie中,您的应用程序将具有CSRF漏洞.

  • 我们运行 nsp 作为CI的一部分.如果我们容易受到已向 node 安全项目 报告的任何漏洞的影响,则会通知我们.

XSS攻击

与任何Web应用程序一样,**您**需要防范XSS攻击.由于Feathers将JWT保留在浏览器的本地存储中,如果您的应用程序成为XSS攻击的受害者,攻击者可能会使用JWT代表您发出恶意请求.这远非理想.因此,您需要特别注意防止XSS攻击.我们对这个特定攻击媒介的立场是,如果您容易受到XSS攻击,那么受损的JWT是您最不担心的,因为可以记录击键,攻击者可以窃取密码,信用卡号或用户直接输入的任何其他内容.

有关更多信息,请参阅

Morty Proxy This is a proxified and sanitized view of the page, visit original site.