使用本地MySQL数据库保护web服务器



我正在为一家小公司创建一个web服务,该服务将使用客户端身份验证,并可能为RESTful服务使用https。我问了一个很简单的问题,希望不要问得太宽泛,但我对网络安全很陌生,很幼稚。我必须采取什么预防措施来确保我的数据安全?

稍微描述一下我的服务,用户有一个帐户,他们在其中放置可能不敏感的信息,并使用我在使用咸密码成功登录时创建的自制身份验证令牌从数据库中检索信息。我正在使用一个亚马逊实例,其中MySQL是本地的,访问权限是远程授予我的,所以我可以直接从我的家访问它。我使用一些php脚本做我的工作请求和添加数据,我试图防止注入。我将MySQL凭证存储在php脚本的单独文件中。我只能用一个我认为安全的pem文件ssh到我的服务器。

我最担心的是有人会来删除我所有的数据。我还需要采取哪些预防措施?由于

如果你正在使用Amazon EC2,那么你应该使用他们的安全组来锁定你的MySQL服务器,并确保没有外部访问是可能的。

应用服务器有一个内部非路由10。如果VPN访问或SSH隧道不实用,则应将应用于访问控制的x类型IP和任何外部IP(如您的家庭网络)特别列入白名单,因为这两种方式更容易保护。

绝对确保没有凭据,配置文件或密钥存储在您的web根目录的任何地方。也就是说,如果您意外地以最糟糕的方式错误配置应用程序服务器,启用目录索引和其他所有内容,则不可能捕获任何关键内容。

您可能还想明确排除*.inc的下载,以防您犯错误。这里的想法是设置一些你必须打破的保护措施,以免事情变得可怕。一次错误的失败总是糟糕的计划的结果。

最重要的是,要对正确的SQL转义非常保持警惕,以避免SQL注入错误,因为当有人可以通过您的代码中的错误驾驶卡车并在服务器上自由统治时,MySQL服务器上的防火墙安全性将无法帮助您。建议在使用之前彻底审核您编写的任何SQL接口代码。

确保有一个使用版本控制系统的适当部署过程。如果您曾经遇到过入侵,那么很容易回滚到已知的代码版本(如果您有的话)。20世纪90年代风格的"使用FTP向服务器抛出文件"部署方法在最好的情况下是危险的,在出现问题时对您的业务是致命的。使用版本控制,否则你就是在浪费时间。

最新更新