0

我是 ES 新手,想知道搜索功能在处理类似以下内容时是否会清理 body 参数中的内部“查询”字段:

   "query": {
      "filtered": {
         "query": {
            "match": {
               "_all": {
                  "query": "[THIS PARAMETER]",
                  "operator": "and"
               }
            }
         }
       }
     }

我已经尝试了所有可以打破它的输入,但我似乎做不到。我创建了一个清理功能,但在搜索诸如“&”或“+”之类的字符串时,这实际上导致了更差的搜索结果。我查看了代码,似乎找不到对该字段的任何明显清理。在我通过该功能直接发送用户的搜索查询之前,我只想确定一下。

谢谢

4

1 回答 1

0

在类似于 SQL 注入的攻击中,我看到了另外三种可能的方法来验证 es 免受针对索引(即数据库)的反向攻击:

  1. 您对 Lucene 的了解程度以及它如何处理攻击?直接追求 Lucene 架构和支持代码,可以让你深入了解 es 如何处理攻击

  2. 试试 SOLR 方法,它也使用 Lucene,看看 SOLR 是如何处理攻击的;SOLR 落后于 es,然后一直在追赶和改进其他领域;es 和 SOLR 之间有一些有趣的 SWOT 架构比较

  3. 放下部分 ELK 堆栈——至少是 Kibana 和 es,并测试 Kibana,这可能会生成您可以测试的其他 es/Lucene 代码

于 2016-02-01T01:43:20.577 回答