AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 94
Accepted
Kaji
Kaji
Asked: 2011-01-04 19:44:05 +0800 CST2011-01-04 19:44:05 +0800 CST 2011-01-04 19:44:05 +0800 CST

保护数据库密码

  • 772

看看我见过的大多数基于 PHP/MySQL 的网站的结构,如果你稍微挖掘一下,似乎并不难辨别数据库密码,因为总是有一个设置或配置文件存储日志信息进入数据库。除了确保我的数据库的权限针对远程请求受到适当限制的基本预防措施外,我可以在自己的项目中实施哪些选项来保护这些信息?

mysql security
  • 6 6 个回答
  • 375 Views

6 个回答

  • Voted
  1. Best Answer
    Joe
    2011-01-04T20:35:05+08:002011-01-04T20:35:05+08:00

    不是关于密码存储的直接答案,但我通常在构建网络应用程序时至少使用两个数据库连接——一个 99% 的时间用于与用户相关的活动,具有受限的权限,另一个用于“管理”功能(删除用户等)。

    在少数情况下,当我安装其他人的包时,我会安装两个实例……一个面向公众的实例,它只有数据库访问权限来执行一般用户类型的事情,第二个实例是 IP 限制的我的本地子网(甚至可能在不同的机器上)必须用于任何“管理员”类型的活动。但是,没有人有权修改表等......我宁愿通过本机数据库工具进入,也不愿让 webapp 运行自己的未经审查的更新任务。

    不过,您可以更进一步,并专门为给定任务添加更多连接...因此用户创建和密码管理任务通过对用户表具有额外特权的用户进行,登录具有数据库特权进行身份验证而不是其他, ETC。

    这样,如果存在 sql 注入攻击,在大多数网页上它实际上不能做任何重要的事情——看不到密码哈希值,不能添加新的管理员用户(不是他们能做的)任何东西)等等。如果他们设法在你的机器上获得一个 shell 仍然无济于事,但它会减慢他们的速度。

    • 10
  2. YasirA
    2011-01-04T19:52:14+08:002011-01-04T19:52:14+08:00

    使用一次性密码、Kerberos、LDAP或其他任何方式来存储您的帐户数据并验证/授权用户。目录服务是存储用户信息并将其用作帐户数据后端的好方法。

    • 7
  3. Gaurav
    2011-01-04T20:00:15+08:002011-01-04T20:00:15+08:00

    只要有可能,我就非常喜欢通过本地套接字使用PostgreSQL 的“Ident”身份验证。这样,本地用户就直接映射到本地计算机的 Unix/Windows 用户,我根本不用担心存储密码的问题。不过,我认为这还不是 MySQL 中的一个选项。

    数据库和网络服务器位于两台不同的机器上,我通过 SSL 使用 MD5 密码:如果敌对者可以访问我的前端服务器,那么他迟早会弄清楚它是如何与数据库通信的。

    • 4
  4. YasirA
    2011-01-04T19:46:22+08:002011-01-04T19:46:22+08:00

    如果您的密码以纯文本形式存储,请使用哈希值(MD5、SHA),卢克!

    • 3
  5. Jeremiah Peschka
    2011-01-04T20:41:32+08:002011-01-04T20:41:32+08:00

    如果您使用的是 .NET Framework,则可以考虑使用加密的连接字符串。我不知道这样的事情在任何其他语言/框架中是否可行,但这将是确保您的连接不受损害的另一种保护措施。

    除了使用加密的连接字符串之外,使用 LDAP/Kerberos/Active Directory 将是您最安全的选择。

    • 3
  6. Patrick
    2011-01-04T19:57:10+08:002011-01-04T19:57:10+08:00

    根据您的编程语言,您可以加密登录凭据,但如果您运行的是解释型语言,则无法确保有人在获得系统访问权限时无法弄清楚凭据。

    如果你正在运行 C++ 或类似的,那么我建议你创建/找到一个加盐的加密/解密函数并通过它运行凭据并将生成的哈希作为文件存储在系统上。

    如果您正在运行 PHP 或类似的程序,我建议您为 编写一个包装器mcrypt_encrypt()并加盐凭据,然后运行一些代码混淆以减慢任何黑客的速度,如果他们确实获得了对系统的访问权限。

    • 2

相关问题

  • 是否有任何 MySQL 基准测试工具?[关闭]

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

  • 什么时候是使用 MariaDB 而不是 MySQL 的合适时机,为什么?

  • 组如何跟踪数据库架构更改?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve