【问题标题】:Store uploaded images securely [closed]安全地存储上传的图像[关闭]
【发布时间】:2014-03-26 04:18:37
【问题描述】:

我正在使用 PHP/MYSQL 开发一些需要用户身份验证的服务器端代码。

当用户创建新帐户时,我会执行所有标准 hash+salt 的操作来将 hash 存储在数据库中,但我不知道如何处理他们需要上传的扫描 ID。

我的意思是,如果您创建了一个帐户,那么您的部分个人数据(名字、姓氏、地址……)是实体身份证(驾驶执照……)的扫描副本(图像)我担心我应该如何正确处理这些敏感图像。

如果你们能指出正确的方向或给我一些提示,我将不胜感激。

感谢您的宝贵时间!

编辑:

哇,你们太棒了,速度很快!

ID 的存储是强制性的,我希望我能以某种方式解决问题,但我不能。

我将按照您的建议通过软件提供访问权限,并按照您的建议尝试删除并存储在 CD 或类似的东西中。

我正在考虑用一些加密来加扰二进制数据,但不确定它是否是个好主意。

【问题讨论】:

  • 只要正确处理文件就没有危险。我只是将它们存储在网络根目录之外。您不会仅仅因为将它们存储在数据库中而自动获得安全性。
  • 始终将存储的文件重命名为 md5 字符串(或其他内容)。所以他们不能再访问上传的文件名了。将原始名称与加密名称一起存储到数据库中。确保通过 imagecreate() 破坏它。并检查 mime 类型(不是防弹!)
  • @RonnieJespersen:没有所谓的“没有危险”。安全性只会让攻击者实现目标更加困难——没有什么是不可逾越的。一个人曾经希望实现的最好的目标就是让一个目标如此难以实现,以至于攻击者在完成任何事情之前就耗尽了他们的资源(时间、金钱、计算能力等)有用。为了实现这一目标,我们需要确定自己所关注的攻击者,量化他们的资源并定义什么会被视为“有用的成就”。
  • @eggyal wordjungle... 我的观点是数据库并没有使它更安全(除非这是你的安全所在)但我的意思是把它们作为我发送的文件更不安全..
  • 问题可能更适合security.stackexchange.com

标签: php mysql security sensitive-data


【解决方案1】:

TL;DR 这真的很危险。除非必须,否则不要这样做。

如果我是你,我会从威胁分析开始。在您的系统上保留这些身份证图像有哪些可能的安全隐患?会出什么问题?你在防御什么?

  1. 坏人可能会侵入您的系统并大量窃取它们,然后将它们卖给身份窃贼。

  2. 与 1 相同,但它们也会窃取表格信息并将其与您的图像相关联。

  3. 有人可能会滥用或滥用您系统的一项功能来查看一张或几张图片,并滥用他们由此获得的信息。

  4. 有人可能会通过向您提供被盗或伪造的身份证对您进行欺诈。

  5. 如果您正在处理付款,您的系统可能无法通过 PCI 审核,并且您会被毫不客气地拒绝您的付款处理访问权限。

在构建系统以尝试保护这些非常敏感的图像时,您需要弄清楚要防御哪些威胁。您还需要弄清楚谁可以查看此信息,您如何验证这些授权用户,以及您保留此信息的时间。

理想情况下,您根本不会收集这些信息。

如果您确实收集了它,请从第一天开始使用 https://。

如果您确实必须收集它,您的下一个最佳选择是立即检查它,然后安全地擦除它,这样您就不会为小偷建立一个很棒的蜜罐。

如果您必须保留它,您的下一个最佳选择是立即将其移动到气隙存储介质中,并将其从您的在线系统中删除。例如,您可以每隔几天刻录一张 CD-ROM 并将其存档保存在文件柜中。

如果您必须在线保留这些信息,那么您肯定希望编写 Web 程序,将其存储到 Web 根目录以外的文件系统中。当有人想看一张图片时,你绝对不想简单地展示一个图片网址,比如

   https://honeypot.com/imgs/idcards/user2573551.png

并从目录中提供文件。相反,您需要一些不将用户 ID 作为显式用户 ID 参数的软件。也就是说,您可能会提供一个类似

的网址
   https://honeypot.com/myId.php

您可能还想了解称为“nonce”的安全令牌,它可以抑制各种跨站点或保存的 URL 攻击。 WordPress 恰好有一个很好的 nonce 系统,您可以从中学习。

小心点,嗯?

【讨论】:

  • 可以在客户端对数据进行非对称加密,并仅将密文传输/存储到服务器上,而不是(或者可能除了)气隙存储。然后可以在需要时使用密钥/私钥离线访问数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-11
  • 2016-04-24
  • 1970-01-01
  • 2021-08-21
  • 2014-06-25
  • 2011-11-04
相关资源
最近更新 更多