我刚刚开始构建一个相当简单的Web应用程序,其中数据在国家的一个地方使用php和mysql存储在数据库中,并在另一部分中检索。数据将包含在任何情况下都不得由第三方访问的个人信息。并且可能存在第三方将主动尝试访问该信息的情况。让我们假设它是证人的名字。这是一个在发展中国家以低预算完成的系统,没有任何形式的证人保护。
我想采取的措施之一是在将数据放入数据库之前对数据进行匿名处理,我认为这是最安全和最低成本的。除此之外,我可以采取哪些措施来减少黑客获取这些人数据的机会?
如果我在存储数据之前对数据使用强加密,那么输入数据的人和检索数据的人都需要加密密钥,对吧?这是一个问题,因为许多人将输入/检索数据,创建漏洞。如果密钥存储在服务器上,例如在代码中,它不会有太大的保护,对吧?或者可以将代码设置为相当黑客安全吗?
我读到有人建议的地方:
Web服务器< ==>应用程序服务器(在DMZ中)< ==>数据库服务器(在第二个防火墙后面),其应用程序排除&防止SQL注入和类似的防御。 在这种情况下,没有黑客可以接近数据库本身。
这是真的吗?那需要三台物理服务器吗?
答案 0 :(得分:2)
您,服务器管理员,您可以访问数据库吗?如果是这样,那么根据定义,设置应被视为不安全。
当然,绝对使用SSL等显而易见的技术,因为它几乎可以防止中间人攻击。仔细编写应用程序以避免SQL注入和那些东西。
如果其中一个层(比如网络服务器)被破解,那么从该层可以请求下面的层,等等。根据定义,分层模型不安全,只需要几个额外的步骤。