2012-04-26 87 views
0

我刚刚开始构建一个相当简单的Web应用程序,其中数据存储在数据库中,在国家的一部分中使用php和mysql,并在另一部分中检索。数据将包含个人信息,在任何情况下都不能由第三方访问。并且可能会有第三方积极尝试访问该信息的情况。让我们假设它的证人的名字。这是一个在发展中国家以低预算完成的系统,没有任何证人保护。在MySQL数据库黑客安全地制作个人数据?

我想采取的措施之一是在将数据存入数据库之前将数据匿名化,我假设这是最安全和最便宜的。除此之外,我可以采取哪些措施来减少黑客获取这些人员数据的机会?

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

我读的地方,有人建议:

Web服务器< ==>应用程序服务器(在DMZ)< ==>数据库服务器(后面第二防火墙)与排除&应用程序防止SQL注入&相似防御。 在这种情况下,没有黑客可以靠近数据库本身。

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

+0

“这个问题不适合我们的问答格式,我们希望答案通常涉及事实,参考资料或具体的专业知识;这个问题可能会征求意见,辩论,争论,投票或扩大讨论。” – Jakub 2012-04-26 15:16:10

+2

不确定任何服务器是否真正“安全”。除非它被关闭并且住在一个未知的,500英尺深的洞底部,被混凝土包住。 – Blake 2012-04-26 15:16:23

+0

对不起 - 也有投票关闭 - 如何建立一个安全的网络应用程序是一个巨大的问题。 – symcbean 2012-04-26 15:22:26

回答

2

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

绝对使用SSL等显而易见的技术,当然,这样做可以防止中间人攻击。仔细编程您的应用程序以避免SQL注入和那些东西。

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