例如,假设您将以下Javascript代码嵌入Vue.js或React.js中。
var elasticsearch = require ('elasticsearch');
var esclient = new elasticsearch.Client ({
host: 'Elasticsearch host name of Elascticsearch Cloud's(URL?')
});
esclient.search ({
index: 'your index',
body: {
query: {
match: {message: 'search keyword'}
},
aggs: {
your_states: {
terms: {
field: 'your field',
size: 10
}
}
}
}
}
).then (function (response) {
var hits = response.hits.hits;
}
);
针对像stackoverflow这样的应用程序的搜索引擎时, 如果仅使用Elasticseach云的ROLE设置从公众那里获得GET可以, 即使我没有准备API服务器,我仍认为上述客户端代码可以实现相同的目的, 这是安全问题吗? (例如主机名落在客户端是否有危险)
如果没有问题,搜索引擎的响应速度会更快,实现成本也会降低, 我想知道为什么很多人不会这样做。 (因为这样的示例代码很难在网上看到)
谢谢。
答案 0 :(得分:2)
这不是一个好主意。
如果任何一位具有一定编程知识的客户端找到了您的ElasticSearch IP地址,那么您就被搞砸了,他基本上可以删除所有数据,甚至无需您注意。
我对XPack安全性一无所知,但是如果您不使用XPack安全性,则绝对被迫将ES隐藏在API后面。
然后,您还必须保护您的ES域安全,以仅允许从API服务器进行访问,并阻止世界其他地方。