除此之外的一些具体问题:
1)您最重要的安全考虑因素是什么?我觉得我已经通过加密/ https保护传输中的数据,通过加密我不需要访问的敏感数据来保护静态数据,设置防火墙以访问phpmyadmin,更改root密码等。但是我并不相信我已经检查了所有的方框'可以这么说。是否有一个强大的指南来保护mysql / php应用程序在那里?也许笔测试是在某种程度上获得信心的唯一方法吗?
2)您的备份注意事项是什么?我在两个不同的数据中心中为mysql数据库设置了主/从关系,并且每周备份一次生产服务器本身。代码全部都在源代码管理中,但我有一些上传的文件,如果整个事情在备份后第6天崩溃,我就会丢失。关于那个的任何想法?考虑将文档存储移动到不同的服务器并在夜间备份,或者异步将文档保存在初始上载到两个单独的服务器上。它们不是大型文档,而且数量还不高,但是,它是可扩展的吗?
答案 0 :(得分:0)
我觉得我已经通过加密/ https
保护了传输中的数据
目前还不清楚你走了多远,所以请原谅我,如果你已经解决了以下问题。
显然,https可以保护客户端与Web服务器之间的数据传输,但不应将其与应用程序和数据库之间的加密连接混淆。无可否认,此处拦截数据的风险因素要低得多,但这取决于数据的敏感程度。可以找到有关设置加密数据库连接的信息here。当您在数据中心之间进行复制时,您也应该考虑setting up replication to use encrypted connections。
复制和备份不是一回事,一旦将数据从主服务器复制到从服务器,您仍然需要备份从服务器。您可以使用mysqldump
,但需要注意的是mysqldump
创建逻辑备份而不是物理备份,因此恢复功能很慢,并且不利于可扩展性。有一个很好的帖子here提供了用于进行物理备份的解决方案。
除此之外,您应该在任何系统中实施通常的安全措施:
root
帐户以及可能会让您失意的其他帐户
比如admin
等根据您的使用情况,您还可以考虑:
/etc/mysql/my.cnf
中,您可以禁用
通过添加来连接本地机器以外的任何地方
bind-address = 127.0.0.1
local-infile=0
可能还有一百万个其他东西,比我更了解MySQL的人可能会在没有考虑的情况下向你发出信号,但这就是我所拥有的。