我们正在为GraphQL服务器使用Graph-QL Java。 我们的用例是验证其他查询参数并抛出错误
突变请求:
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的查询。这些不是已定义架构的一部分。请注意,这是为了验证使用布尔条件的漏洞攻击。
上面的查询给出的结果与实际模式请求给出的结果完全相同
预期/实际模式请求: 变异{actionHandler(action:“ status”,entity:“ integration”,ids:[1],value:“ Run”){result}}
注入了附加的布尔条件(OR 1 = 1),因为参数不处理查询结果。当图ql本机解析器将变异查询转换为相应的架构对象时,似乎被忽略了。
我们如何使用GraphQL本机库本身来验证不属于模式请求的其他输入参数?