防止GraphQL注入攻击
对于那些由LDAP、ORMs/SQL/NoSQL或XML等辅助解析器 , 来处理输入信息的应用而言 , 我们建议开发人员做到如下方面:
- 选择诸如参数化语句等能够提供安全API的库 。
- 根据所选用的解析器的最佳实践 , 对输入进行转义或编码 。
- 遵循所选模块的文档 , 以正确的方式使用该工具 。 毕竟 , 大多数语言和框架都内置了编码/转义功能 , 因此了解它们的核心功能 , 并选择适合的用例是非常重要的 。
DoS攻击旨在使得GraphQL API变慢、甚至无法响应正常的请求 。 为了防御此类攻击 , 我们应做到:
- 为传入的GraphQL查询实施深度的规则限制(depth limiting) 。
- 为基础设施和API层添加超时设定 。
- 执行查询的成本分析 , 以限制代价昂贵的查询 。
- 对每个API客户端的传入请求 , 实施速率限制 。
为了保护对GraphQL API的合理访问 , 开发人员应该做到:
- 验证当前用户是否有权根据他们的请求 , 查看、改变、以及修改数据 。
- 对端点和边缘实施授权控制 。
- 利用基于角色的访问控制(RBAC)中间件 , 通过查询和变异解析器(mutation solver) , 来启用访问控制 。
- 在公共的API中禁用自省查询 。
- 禁用GraphiQL之类针对GraphQL模式的探查工具 。
开发人员还可以用来保护GraphQL层的其他方法包括:
- 对允许的字符使用白名单 。
- 为突变的输入预先定义好对应的GraphQL模式 。
- 使用单一的内部字符编码格式 , 来正确地处理Unicode输入 。
- 添加分页(pagination) , 以限制单个请求能够一次性访问到的信息量 。
推荐阅读
- 安全|Redline Stealer恶意软件:窃取浏览器中存储的用户凭证
- 温小姐|全市首台企业信用报告自助查询机在阳东正式投用
- 恶意|圣诞节前收到解雇邮件?新型 Dridex 网络钓鱼攻击曝光,看到勿点
- Microsoft|微软发布安全基线包:可阻止PrintNightmare、恶意攻击等
- 检测|有变化!西安一码通新增核酸结果查询入口
- Google|Google Play商店中发现感染Joker恶意软件的应用 下载量达50万次
- 视点·观察|浑水在恶意打压股价 还是贝壳在编织“谎言”?
- 最新消息|贝壳回应被浑水做空:坚决抵制任何机构的恶意做空行为
- 苹果|中国绿厂造「芯」不输苹果!发布替代手机黑科技眼镜,健康状态、导航、翻译一眼查询...
- 社交|微博回应被网信办约谈处罚:推进软色情和同质化恶意营销专项治理