我担心用户可能会在我的elasticsearch cluser中执行恶意代码,例如,通过执行昂贵的查询来删除索引或关闭服务器。根据这个答案,这个问题在理论上确实存在。
我们的elasticsearch集群只能从dotnet后端服务器访问,我们使用elasticsearch nest客户端执行查询。目前,在我们的查询中用户输入是不变的。例如:
var result = await nestClient.SearchAsync<Product>(search => search
.From(offset)
.Size(limit)
.Query(query => query
.MultiMatch(multiMatch => multiMatch
.Fields(fields => fields
.Field(product => product.Name)
.Field(product => product.Description))
.Operator(Operator.Or)
.Query(MALICIOUS_USER_INPUT)
)
)
);
我希望 NEST
客户端(或底层) Elasticsearch.Net
客户端)负责清理用户输入。
这个假设正确吗(链接到证明文档或源代码(高度赞赏)
如果假设不正确:我需要采取什么措施来防止用户在我的elasticsearch查询中注入恶意代码?
暂无答案!
目前还没有任何答案,快来回答吧!