【问题标题】:Why is having a password for your database important? (for example, in Rails)为什么为您的数据库设置密码很重要? (例如,在 Rails 中)
【发布时间】:2012-03-15 18:21:43
【问题描述】:

我的问题很简单:如果一个人知道我的密码,他如何在生产环境中访问我的数据库?我知道这是可以做到的,否则你不必为它设置密码,但我真的很想知道怎么做。

另外,如果有人知道我的数据库的密码,他是否可以对我的数据库执行所有查询(不仅是 SELECT,还包括那些改变数据库的查询)?

【问题讨论】:

  • 这是一个深度防御的例子——当服务器受到攻击时,数据库仍然有一定的防御措施。此外,如果您在同一台服务器上与多个数据库共享主机,则数据库的密码显然是必须的。

标签: ruby-on-rails database passwords web


【解决方案1】:

如果一个人知道我的 密码?

通过漏洞利用或其他可以建立连接的脚本。

如果有人知道我的数据库的密码,他可以执行所有 对我的数据库的查询(不仅是 SELECT,还有那些改变 数据库)

他们可以执行该帐户有权执行的任何操作。这是应用程序登录仅被赋予最小权限的一个很好的理由。通常在功能齐全的数据库系统中,您可以仅在某些表或视图(甚至可能不是所有列)上为应用程序角色/帐户提供 SELECT,并且通常仅通过存储过程修改数据。通过以这种方式最小化表面积,您就有了纵深防御,因此不仅帐户受密码保护,而且帐户只有一定的攻击面。这只是整个安全流程的一部分。

【讨论】:

    【解决方案2】:

    您的数据库位于服务器上,就像任何其他计算机一样。它有一个 MAC 地址,可能是一个 NIC,最重要的是,一个 IP 地址。

    如果您曾经使用过 Window 的远程连接实用程序,系统会要求您提供计算机的 IP 地址以及用户帐户的登录凭据。从那里,您将打开数据库管理系统(它只是一个运行在计算机上的应用程序),一旦您进入数据库,它就在那里。就像它为你做的那样。

    对于攻击者来说,删除所有辛勤工作的过程包括您将采取的完全相同的步骤!选择一个好的密码,不要在服务器上任何面向公众的目录中存储任何敏感信息!

    【讨论】:

    • 谢谢,这是我想知道的:)
    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多