Java 表达式中的SQL注入保护
我试图使我的查询成为SQL注入的证据。我正在使用couchbase表达式构建带有用户输入的查询Java 表达式中的SQL注入保护,java,couchbase,n1ql,Java,Couchbase,N1ql,我试图使我的查询成为SQL注入的证据。我正在使用couchbase表达式构建带有用户输入的查询 private GroupByPath getSearchStatement(SearchParams searchParams) { String bucketName = asyncBucket.name(); Expression expression = x("sample_id").eq(s(searchParams.getSampleId()));
private GroupByPath getSearchStatement(SearchParams searchParams) {
String bucketName = asyncBucket.name();
Expression expression = x("sample_id").eq(s(searchParams.getSampleId()));
String selectStatement = bucketName + ".*";
return select(selectStatement)
.from(bucketName)
.where(expression);
}
这段代码是SQL注入安全的吗?或者我必须做任何额外的事情。代码看起来足够好,可以防止sql注入。参数化查询应该是另一种方法,并且对于准备好的查询更灵活 一个简单的例子是
N1qlQuery.parameterized(“从myBucket中选择*,其中sample_id=$1”,JsonArray.from(searchParams.getSampleId())代码>
它可以是位置参数或命名参数。在我看来,这不像Couchbase。@TimBiegeleisen是这样的GroupByPath
是一个Couchabase Java sdk接口——从外观上看,这取决于是否正确转义输入。我会这么想,但这只是一个猜测。