本机应用程序直接与数据库交谈[英] native app talking directly to db

问题描述

我正在制作一个 ios 应用程序,以 ElasticSearch 作为数据库.由于 ES 公开了一个 http api,从技术上讲,我可以让客户端直接与数据库对话,而无需通过应用服务器路由它.我永远不会在 Javascript 中这样做,因为用户可以查看源代码并查看凭据.由于 ios/android 应用程序已编译并且用户无法查看其源代码,因此让应用程序直接与数据库对话是否安全?还有其他问题吗?

推荐答案

通过晦涩的安全性(通过不在 JavaScript 中使用 API 调用来隐藏它们)从来都不是答案.有什么可以阻止某人通过 WireShark 或其他类似软件嗅探流量,然后以这种方式映射您的 API?

你永远不应该让你的 Elasticsearch 安装对外界可见,ES 是围绕搜索而不是安全构建的.

如果您想正确且安全地执行此操作,则必须构建一个带有一些内置身份验证的包装器.这样做的主要原因是(您甚至自己说过)Elasticsearch 是一个数据库,在某种程度上,您现在不会让您的数据库面向公众.

作为旁注,有 https://github.com/sonian/elasticsearch-jetty 但我从来没有用过它,所以不能推荐它.我会坚持使用包装纸...

查看更多