我想在调用服务器之前验证我的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字符串,也要执行此操作。