0

我刚刚开始构建一个相当简单的 Web 应用程序,其中数据在该国的一个地方使用 php 和 mysql 存储在数据库中,并在另一部分进行检索。数据将包含在任何情况下都不得被第三方访问的个人信息。在某些情况下,第三方会主动尝试访问该信息。让我们假设它是证人的名字。这是一个在发展中国家以低预算完成的系统,没有任何形式的证人保护。

我想采取的措施之一是在将数据放入数据库之前对其进行匿名处理,我认为这是最安全且成本最低的。除此之外,我可以采取什么措施来减少黑客获取这些人数据的机会?

如果我在存储数据之前对数据使用高度加密,那么输入数据的人和检索数据的人都需要拥有加密密钥,对吗?这是一个问题,因为许多人将输入/检索数据,从而造成漏洞。如果密钥存储在服务器上,例如在代码中,它就不会起到太大的保护作用,对吧?或者可以使代码对黑客安全吗?

我在某处读到有人建议:

网络服务器<==>应用程序服务器(在 DMZ 中)<==>数据库服务器(在第二个防火墙后面),其应用程序可以排除和防止 SQL 注入和类似防御。在这种情况下,任何黑客都无法接近数据库本身。

真的吗?是否需要三台物理服务器?

4

1 回答 1

2

作为服务器管理员,您可以访问数据库吗?如果是这样,那么根据定义,该设置应该被认为是不安全的。

当然,一定要使用 SSL 等显而易见的技术,因为这几乎可以防止中间人攻击。仔细编程您的应用程序以避免 SQL 注入和那些东西。

如果其中一个层(例如网络服务器)被破解,则可以从该层向其下方的层发出请求,等等。分层模型根据定义并不安全,它只需要一些额外的步骤。

于 2012-04-26T15:18:21.650 回答