我听说过使用三层架构是需要保护的Web应用程序的最佳实践。
我对这种架构的理解如下:
另一个选项是从Web服务器到数据库的直接通信。此通信将作为特定用户完成,该用户只能访问应用程序所需的访问权限(SELECT
,INSERT
,UPDATE
。例如,该用户将无法从用户表或删除表中删除记录。
三层方法更安全的逻辑是,如果您的Web服务器遭到入侵,攻击者将只能以与您使用API相同的方式获取数据。
我的问题:对于存储潜在敏感数据的Web应用程序,这种方法是否必要?所有非常敏感的数据都会在静止时加密,但其他个人身份信息将以明文形式存储,以便进行搜索。
如果有必要,获得这种方法的最佳方法是什么?您的API是否需要有效的会话令牌才能获取特定用户的数据?我担心的是,如果您没有其他安全层,攻击者可以简单地使用API来获取他们想要的数据。您如何保护您的API以防止这种情况发生?