有关使用低级 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 注入的影响?
我很惊讶没有参数化查询的示例。如果这很容易受到注入攻击,那么我想人们必须提出自己的验证来清理输入参数......
这绝对不是SQL注入,因为OpenSearch不是SQL实现。
如果您的 q
变量基于不受信任的输入,您能做的最糟糕的事情就是注入
OpenSearch DSL 查询字符串。这可能会导致 DSL 语法错误或您不希望的搜索。
这可以被视为代码注入,但不太可能造成太大危害。