如何清除Elasticsearch自动生成的ID


How to sanitize Elasticsearch autogenrated ID?

我想在调用服务器之前验证我的Elasticsearch ID。我四处搜索,想知道是否有办法检查所请求的ID是否有正确的格式。我不确定这是否必要。我知道elasticsearch生成url安全的Base64 ID的

有人有建议吗?我的问题是

  • 我应该验证elasticsearch ID吗?

  • 如果没有. .直接查询Elasticsearch服务器安全吗?用户将无法输入ID,但一些恶意用户可以拦截或找出如何使用随机字符串调用端点,这可能是一个可能的攻击或访问不同的数据集?

我是一个Elasticsearch初学者,但我正在寻找最佳实践。我读到,在以前的版本中,有一个漏洞可以打开远程代码执行。

https://www.elastic.co/blog/scripting-security

http://bouk.co/blog/elasticsearch-rce/

我知道这是固定的,但仍然想验证ID。这至少可以避免在ID格式不正确的情况下对Elasticsearch进行不必要的调用。我所知道的是"永远不要相信用户的输入",或者在我的情况下避免可能的输入。

注意:我使用的是elasticsearch-php客户端

有什么建议吗?谢谢。

我应该验证elasticsearch ID吗?

如果你想。您可以检查只有字母数字,+, /=存在。这增加了一层额外的安全性,但严格来说,不应该这样做。本着"纵深防御"的精神,我建议这样做。

如果没有. .直接查询Elasticsearch服务器安全吗?用户将无法输入ID,但一些[恶意]用户可以拦截或找出如何用随机字符串调用端点,这可能是攻击或访问另一组数据?

如果你使用一个久经考验的JSON编码器来构建你的查询,那么任何攻击者将无法打破查询和检索数据,他们不打算(即打破一个JSON字符串构建与连接将不可能- NoSQL注入的一种形式)。即使像前面描述的那样验证JSON字符串,也要执行此操作。