Opensearch Python 客户端是否存在 SQL/NoSQL/DSL 注入?
关于使用低级Python客户端的Opensearch文档可以在这里找到。
在执行搜索查询时,它展示了以下示例:
# Search for the document.
q = 'miller'
query = {
'size': 5,
'query': {
'multi_match': {
'query': q,
'fields': ['title^2', 'director']
}
}
}
response = client.search(
body = query,
index = index_name
)
print('\nSearch results:')
print(response)
这个示例是否容易受到SQL / DSL注入攻击?
我很惊讶没有看到带参数化查询的例子。如果这个示例容易受到注入攻击,那就需要自己想办法来验证和清理输入参数了……
1 个回答
0
这绝对不是SQL注入,因为OpenSearch并不是一个SQL的实现。
最糟糕的情况是,如果你的q
变量是基于不可信的输入,那么你可能会注入一个OpenSearch DSL查询字符串。这可能导致DSL语法错误,或者进行一个你并不想要的搜索。
这可以算作代码注入,但不太可能造成太大的伤害。