graphql - 如何验证或检测 graph-ql java 中的附加请求参数?
问题描述
我们将 Graph-QL Java 用于我们的 GraphQL 服务器。我们的用例是验证额外的查询参数并抛出错误
突变请求:
mutation{actionHandler(action:"status",entity:"integration",ids:[1],value:"Run"){result}} OR 1=1
架构类:
public class ActionHandler {
private String entity;
private String action;
private String value;
private List<Integer> ids;
private List<String> result;
}
上面的查询具有附加请求参数 OR 1=1。这些不是已定义架构的一部分。请注意,这是为了使用布尔条件验证漏洞攻击。
上面的查询给出的结果与实际模式请求给出的结果完全相同
预期/实际模式请求: mutation{actionHandler(action:"status",entity:"integration",ids:[1],value:"Run"){result}}
注入额外的布尔条件(OR 1=1)作为参数不操纵查询结果。当图 ql 本机解析器将突变查询转换为相应的模式对象时,似乎是那些被忽略的。
我们如何使用不属于模式请求的 GraphQL 本机库本身来验证其他输入参数?
解决方案
推荐阅读
- reactjs - 我们什么时候可以期待 React 的新时间切片异步渲染功能?
- javascript - JS按数组过滤数组
- hyperledger-fabric - 如果超级账本结构链码中的数据结构发生变化,旧数据会发生什么变化
- winapi - 使用程序 WINdowClass 调用 FindWindowEx
- java - 为什么我的程序只循环通过 File Not Found 异常?
- mysql - 如何将 MySQL 连接行简化为列?
- python - Keras 将 LSTM 模型与非 LSTM 模型连接起来
- opendaylight - Opendaylight 荧光粉创建反应流
- docker - Nginx 在 Docker 服务发现中重试 http_502 上的相同端点
- javascript - 如何在子组件中更新/编辑后重新渲染父组件 React Native?