【发布时间】:2017-01-27 05:42:30
【问题描述】:
具体来说,我正在使用 PHP 和 Web 应用程序上的数据。
据我所知,访问用户数据的主要原因是:
- 用于登录
- 用于沟通,包括运送产品
在我看来,黑客最可能感兴趣的数据类型是用户数据,因此它应该得到额外的保护。
这是一种可能的技术。我通常使用 PDO 进行数据库工作,因此以下内容应适用于任何受支持的数据库。
- 使用单个用户表创建数据库
users。 - 创建受限于数据库的用户
- 相应地创建 PDO 对象
- 从主登录脚本中,调用包含的脚本来验证用户身份。
- 为了增加安全性,此脚本可能位于 Web 根目录之外?
- 使用会话变量做正常的事情。特别是存储相关检索到的用户信息。
- 继续处理主数据库中的其余数据
我认为并非所有托管服务器都可以轻松存储 Web 根目录之外的任何内容。
我的猜测是,如果用户数据库不是最常访问的数据的一部分,它就不太可能受到破坏。
我还认为将用户数据与密码分开到单独的表中也是一个好主意,但我将把它放到另一个问题中。
我并不是说这是一个完美的解决方案,但我正在寻找更好的保护。问题是:这样的技术会比将用户详细信息保存在主数据库中提供更多的安全性吗?
【问题讨论】:
-
数据泄露的方式太多了。如果 SQL 注入是不可能的,那么将其保存在另一个数据库中本质上没有什么比这更安全的了,除非该数据库是另外一个孤立的。但是,应用数据库安全性始终是一件好事——这可以在同一个数据库中。
-
要附加到@user2864740 的评论,您可以拥有多个只允许特定数据库的数据库用户帐户,其中 1 可能是您的用户登录详细信息。