安全存储上传的图像

时间:2014-02-24 13:12:32

标签: php mysql security sensitive-data

我使用PHP / MYSQL开发一些服务器端代码,需要用户验证。

当用户创建一个新帐户时,我会使用所有标准的hash + salt来将哈希存储在数据库中,但我不知道如何处理他们需要上传的scaned ID。

我的意思是,如果您创建一个帐户,您的部分个人数据(名字,姓氏,地址......)是一张物理身份证的扫描副本(图像)(驾驶执照,...)我担心如何妥善处理这些敏感图像。

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

感谢您的时间!

编辑:

哇,你们真棒,速度快!

ID的存储是强制性的,我希望我能以某种方式工作,但我不能。

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

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

1 个答案:

答案 0 :(得分:1)

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

如果我是你,我会从威胁分析开始。在您的系统上保留这些身份证图像可能存在哪些安全隐患?怎么可能出错?你在为什么辩护?

  1. Badguys可能会穿透你的系统并将它们大量偷走,并将它们卖给身份盗贼。

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

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

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

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

  6. 在构建系统以尝试保护这些非常敏感的图像时,您需要确定要防御哪些威胁。您还需要确定允许哪些人查看此信息,如何对这些授权用户进行身份验证以及保留此信息的时间。

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

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

    如果你必须收集它,你的下一个最好的选择是立即检查它然后安全地擦除它,所以你不要为小偷建立一个伟大的蜜罐。

    如果您确实需要保留它,那么您的下一个最佳选择是将其迅速移至气隙存储介质,并将其从在线系统中删除。例如,您可以每隔几天刻录一张CD-ROM并将它们存档在文件柜中。

    如果您必须在线保留此信息,您肯定希望编写将其存储到除Web根目录之外的文件系统的Web程序。当有人想要看图像时,你绝对不希望仅仅呈现像

    这样的图像网址
       https://honeypot.com/imgs/idcards/user2573551.png
    

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

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

    您可能还想阅读称为“nonces”的安全令牌,这些令牌会抑制各种跨站点或已保存的URL攻击。 WordPress碰巧有一个很好的nonce系统,你可以从中学习。

    小心,嗯?