0

我目前正在处理需要根据输入动态创建的查询。基本上在我的数据库中,我存储了一堆键/值对的映射,并且查询是键/值对的映射,所有键/值对都需要从中匹配。

我已经找到了如何使用 N1qlQuery.parameterized() 以及使用“$param”的语句和占位符值,但这不适用于 Expression.x(“field”) 子句中的字段名。问题是,虽然我的字段值不会受到 SQL 注入的影响,但如果我只是将用户输入的字符串值放在那里,我的字段名称就不会了。

如何在查询中转义动态构建的字段名称?

    String fieldNameThatCanBeHacked = "fieldNameThatCanBeHacked";
    Statement statement = Select.select("*").from(CouchbaseConfig.BUCKET_NAME).where(Expression.x(fieldNameThatCanBeHacked).eq("$param");
4

0 回答 0