如何解决使用C#NEST客户端时的Elasticsearch代码注入
我担心用户可能会在我的Elasticsearch cluser中执行恶意代码,例如删除索引或通过执行昂贵的查询来关闭服务器。根据{{3}},该问题在理论上确实存在。
我们的Elasticsearch集群只能从我们的dotnet后端服务器访问,并且我们使用this answer执行查询。当前,用户输入在我们的查询中未更改。例如:
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查询中注入恶意代码?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。