我是 ES 的新手,想知道搜索函数在处理以下内容时是否会清理 body 参数中的内部"查询"字段:
"query": {
"filtered": {
"query": {
"match": {
"_all": {
"query": "[THIS PARAMETER]",
"operator": "and"
}
}
}
}
}
我已经尝试了我所能做的一切输入来打破它,但我似乎不能。我创建了一个清理功能,但这实际上会导致搜索"&"或"+"等字符串时搜索结果更差。我已经浏览了代码,似乎找不到该字段的任何明显清理。我只想在通过函数发送用户的搜索查询之前确定一下。
谢谢
我看到了三种可能的方法,可以在类似于SQL注入的攻击中验证es免受针对索引(数据库)的倒置攻击:
-
你对Lucene以及它如何处理攻击有多了解?直接追求Lucene架构和支持代码可以让您深入了解es如何处理攻击
-
尝试使用同样使用 Lucene 的 SOLR 方法,看看 SOLR 如何处理攻击;SOLR落后于es,然后一直在追赶和改善其他领域;ES和SOLR之间有一些有趣的SWOT架构比较
-
放下 ELK 堆栈的一部分——至少是 Kibana 和 es,并测试 Kibana,这可能会生成其他可以测试的 es/Lucene 代码。