Active Record(Rails)MySQL安全连接

时间:2010-11-29 23:28:34

标签: mysql ruby-on-rails database security activerecord

现在,我还没有找到关于这个主题的任何好资源,所以我会在这里问我的问题,看看是否有人有任何建议/建议。

我将尽快部署Ruby on Rails应用程序(Active Record ORM),我的数据库(MySQL或PostgreSQL)将位于外部位置(127.0.0.1范围之外)。

我能够连接到外部MySQL数据库,只需解除/etc/mysql/my.conf中的地址绑定并添加一个从外部位置获取连接的用户即可。但是,由于数据正从我的应用程序服务器传输到我的MySQL服务器,这是怎样的(in)secure?

我需要进行某种形式的加密吗? Active Record是否在后台执行任何操作以保护数据在传输过程中不被劫持(或任何您称之为的内容)?或者,在使用外部位置的数据库时,我的数据是否足够安全,使用MySQL和/或PostgreSQL?

所以简而言之:当我的MySQL或PostgreSQL数据库位于外部位置时,是否应该做什么(额外),而不是当它在localhost范围内时?

非常感谢任何建议,指示,建议和资源!

谢谢!

2 个答案:

答案 0 :(得分:2)

这在很大程度上取决于应用程序服务器和数据库服务器的连接方式。

如果流量在野外路由(即您没有连接服务器的虚拟专用网络),则可以在Rails应用和MySQL之间建立SSL连接:

  • MySQL支持使用安全套接字层(SSL)协议在MySQL客户端和服务器之间建立安全(加密)连接。 Reference
  • ActiveRecord具有SSL安全性选项(:sslkeydatabase.yml中的其他选项)。 Reference

对于低权限用户,限制从给定IP到MySQL的外部连接仍然适用。

答案 1 :(得分:1)

除了查看通过SSL运行的选项之外,您还可以并且应该锁定数据库服务器以仅接受来自特定IP地址的连接。

如果连接完全不受信任,我通常只会运行SSL,因为它会对性能产生一些影响。