我是网络开发的新手,并且看过these 这样的帖子。如果一个人正在使用AWS并通过Node连接到AWS rds实例,那么它仍被视为直接连接而不是Web服务吗?
答案 0 :(得分:0)
你可能会在这方面得到一堆相互矛盾的意见。我个人认为,在某些情况下,数据库前面的Web服务是有意义的。连接到Web服务而不是直接连接到db的多个应用程序提供了几个优点,安全性,缓存等。
话虽如此,如果这只是一个应用程序,那么大部分优势都会消失,实际上只会让事情变得更复杂。您将不得不为数据库以及实际代码设置Web服务。
答案 1 :(得分:0)
如果正在使用AWS并通过Node连接到AWS rds实例,那么它仍被视为直接连接而不是Web服务吗?
不,如果Node.js在服务器上运行,或者在无服务器上运行"容器(例如AWS Lambda)不直接连接。这是一个Web服务,这就是你想要的。
直接连接意味着应用程序连接到数据库本身......但这需要在应用程序中嵌入凭据。
您不希望在您的应用中嵌入任何您不愿意移交给任意用户的内容 - 例如数据库凭据和API密钥 - 因为您不能相信该应用不会反向 - 工程。
您应该以这样的方式设计应用程序:如果应用程序的整个源代码被公开,您就不会有任何安全问题,因为了解应用程序内部的所有内容会给恶意行为者提供有价值的信息。怎么样?服务器端的代码(例如在Node.js中)应该将来自应用程序的每个请求都视为可能的,不可靠的等等,并验证每个请求做任何事情。
这一分离层是您永远不会让应用直接访问数据库的最重要原因之一。在受信任的地方运行的代码 - 您的Web服务器/ API层 - 需要审查每个数据库交互。这种拓扑结构还可以解除应用程序用户在没有实际与数据库交互时占用数据库服务器上的资源的情况,这对于直接连接来说实际上要少得多。