【问题标题】:Is there any additional security in storing user data in a separate database?将用户数据存储在单独的数据库中是否有任何额外的安全性?
【发布时间】:2017-01-27 05:42:30
【问题描述】:

具体来说,我正在使用 PHP 和 Web 应用程序上的数据。

据我所知,访问用户数据的主要原因是:

  • 用于登录
  • 用于沟通,包括运送产品

在我看来,黑客最可能感兴趣的数据类型是用户数据,因此它应该得到额外的保护。

这是一种可能的技术。我通常使用 PDO 进行数据库工作,因此以下内容应适用于任何受支持的数据库。

  • 使用单个用户表创建数据库 users
  • 创建受限于数据库的用户
  • 相应地创建 PDO 对象
  • 从主登录脚本中,调用包含的脚本来验证用户身份。
    • 为了增加安全性,此脚本可能位于 Web 根目录之外?
  • 使用会话变量做正常的事情。特别是存储相关检索到的用户信息。
  • 继续处理主数据库中的其余数据

我认为并非所有托管服务器都可以轻松存储 Web 根目录之外的任何内容。

我的猜测是,如果用户数据库不是最常访问的数据的一部分,它就不太可能受到破坏。

我还认为将用户数据与密码分开到单独的表中也是一个好主意,但我将把它放到另一个问题中。

我并不是说这是一个完美的解决方案,但我正在寻找更好的保护。问题是:这样的技术会比将用户详细信息保存在主数据库中提供更多的安全性吗?

【问题讨论】:

  • 数据泄露的方式太多了。如果 SQL 注入是不可能的,那么将其保存在另一个数据库中本质上没有什么比这更安全的了,除非该数据库是另外一个孤立的。但是,应用数据库安全性始终是一件好事——这可以在同一个数据库中。
  • 要附加到@user2864740 的评论,您可以拥有多个只允许特定数据库的数据库用户帐户,其中 1 可能是您的用户登录详细信息。

标签: php database security


【解决方案1】:

您可以完全编写身份验证和授权服务。看看 OAuth。您使用此服务的用户名和密码进行身份验证,并且身份验证服务器可以生成令牌,从而可以访问您的服务。

https://en.wikipedia.org/wiki/OAuth

【讨论】:

  • 我非常喜欢这种隔离(不一定是 OAuth,而是 AA/A 的隔离服务)。然而这太不常见了。
  • 我们为所有不同的服务提供单独的授权服务。但这肯定是很多工作。我个人认为,在您的情况下,您完全不需要单独的数据库。只需对密码进行哈希处理即可。您还可以使用不同的用户来访问用户表。删除所有其他用户对表的访问权限。
【解决方案2】:

是的,实际上这不是一个坏主意,但我会采取不同的做法:

  • 创建数据库、用户帐户和必要的用户数据表。
  • 创建一个不同的webhost(例如userapi.myhost),它甚至可以是一个本地主机。新的虚拟主机应该在与您的主应用完全不同的位置拥有自己的网络根目录。
  • 创建一个 API 以在新主机中使用脚本(或使用框架)获取/更改用户数据。
  • Auth 保护对您 API 的 http 请求并限制对特定 IP 的访问(如果 api 在同一台服务器上,甚至是您的本地 IP)。
  • 您的主应用使用新的 API 来访问/更改用户数据。

因此,例如,用户尝试使用用户密码登录主应用 -> 主应用将他的登录信息发送到 api -> 如果正确,获取信息。

这可以防止 sql 注入,因为您的主应用程序可能有许多库和服务,它们对您的数据库执行许多不同的查询,并且其中一些可能存在安全漏洞。 我建议:

  • 保持用户 API 简单且经过测试。
  • 将用户管理员保留在辅助应用程序上(另外密码保护和限制对它的访问到您的 ip)。

很遗憾,这并不能完全保护您。在某些情况下,黑客可能会放置自己的脚本或更改您的代码,“查看”登录详细信息并通过您的主应用程序访问用户数据。嗯,还有很多其他的方法,以及很多不同的解决方案。 (apache openbase_dir 限制,删除“apache”用户对您的代码的写入权限,从“apache”用户可以写入的目录中删除执行处理程序,例如图像等)

由于您正在寻找更好的保护,如果您不介意投入更多的工作和时间,我肯定会建议您这样做。

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2023-01-03
    • 2017-03-06
    相关资源
    最近更新 更多