使用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 (将#修改为@)