• 请不要在回答技术问题时复制粘贴 AI 生成的内容
YiweiHangzhi
V2EX  ›  程序员

身份证照片存数据库,该如何存最好?存一个字段还是两个字段

  •  
  •   YiweiHangzhi · Aug 28, 2018 · 12525 views
    This topic created in 2992 days ago, the information mentioned may be changed or developed.

    目前遇到一个业务需求,上传身份证照片存储,身份证有正反两面,那是合在一个字段里好?还是分成 2 个字段好?

    还有就是一份代码复制两份,还是用 List 进行循环来取值好?

    Supplement 1  ·  Aug 29, 2018
    文件是上传在服务器上的,是指 URL 链接字段的存储
    69 replies  •  2018-08-31 09:24:48 +08:00
    YiweiHangzhi
    YiweiHangzhi
    OP
    Aug 28, 2018
    1
    顶一些,求帮助~
    claysec
    claysec
    Aug 28, 2018
    2
    怎么方便怎么来。想要图片存入数据库就转成 base64 存入。
    TomatoYuyuko
    TomatoYuyuko
    Aug 28, 2018
    3
    存一张拼雪碧图可行么?
    4everYang
    4everYang
    Aug 28, 2018
    4
    个人觉得两个方便...
    imn1
    imn1
    Aug 28, 2018
    5
    我个人做这个的话,每图一个字段,加密入库,原始文件删掉,脱裤无拉链也看不到东西
    kslr
    kslr
    Aug 28, 2018 via Android
    6
    存两份,不要往数据库存
    rexyan
    rexyan
    Aug 28, 2018 via iPhone
    7
    直接存?不应该加密吗?
    dcsite
    dcsite
    Aug 28, 2018
    8
    身份证照片为什么要存数据库?
    annielong
    annielong
    Aug 28, 2018
    9
    看场景不,如果类似 A4 纸张大小的扫描件那种,正反面都在一个图片上,一次上传的放一个字段,如果分别上传的还是放两个字段,或者是一个字段,然后分两条记录,
    lovedebug
    lovedebug
    Aug 28, 2018 via Android❤️1
    10
    不要把图片存服务器。为啥不存文件系统?或者专门的图片服务器?或者 azure blob ?
    zhengxiaowai
    zhengxiaowai
    Aug 28, 2018❤️3
    11
    。。。。。。。。。。。这种信息怎么可以存数据库,校验完毕就要在内存中销毁啊
    qiyuey
    qiyuey
    Aug 28, 2018
    12
    不要存数据库
    randyzhao
    randyzhao
    Aug 28, 2018
    13
    zhipengpyy
    zhipengpyy
    Aug 28, 2018❤️6
    14
    @zhengxiaowai 销是不可能销的, 真有会销毁这种数据的公司吗 ??
    moshao6
    moshao6
    Aug 28, 2018
    15
    看后面的量是否多,如果很少了话建议数据库,两个字段
    mydns
    mydns
    Aug 28, 2018
    16
    文件形式存吧 要不数据库太大了
    liuawei
    liuawei
    Aug 28, 2018
    17
    两个字段,存放图片的路径吧
    bingocn
    bingocn
    Aug 28, 2018
    18
    正反面保存在一起。自定义数据格式,用 TLV 正反面保存在一起,然后加密,base64 存数据库。
    要更安全些的话,公司弄个公私钥对,加密的对称密钥可以定期产生,然后用公司的公钥加密这个对称密钥
    loveCoding
    loveCoding
    Aug 28, 2018
    19
    加密后直接上文件存储吧 ,数据库只是存一个 url 而已 .
    对于文件类型,推荐服务中单独抽一张文件表,记录文件相关信息 提供统一文件上传,下载接口,业务表里面引用 id 就好了
    wweir
    wweir
    Aug 28, 2018 via Android
    20
    存对象存储好,路径存数据库
    owenliang
    owenliang
    Aug 28, 2018
    21
    人家身份证,不方便存 CDN 上,你们非得让他存 CDN 上。
    flight2006
    flight2006
    Aug 28, 2018
    22
    1、文件存文件系统,数据库存文件系统 id 或者 url
    2、正反面分 2 条记录存,因为存在一条记录你不能保证用户上传正面就一定有反面,如果只有一面那条就是个脏数据
    znood
    znood
    Aug 28, 2018 via iPhone
    23
    @owenliang 当然可以存,数据加密存进去,取出来再解密
    delectate
    delectate
    Aug 28, 2018
    24
    当然不可能销毁;必须要入库也别转 base64,分两个字段,存路径和 md5 (或者身份证号?)
    iwtbauh
    iwtbauh
    Aug 28, 2018 via Android
    25
    说加密的是认真的吗 XD

    > 通常,一个安全系统的安全性只取决于它所拥有的秘密,慎防虚假的秘密 --- 埃里克雷蒙

    这种情况下,加密只能造成一种安全假象。

    最安全的做法是#11

    当然如果你们只是为了在宣传上增加一个“我很安全”的卖点,当我没说
    rateltalk
    rateltalk
    Aug 28, 2018 via iPhone
    26
    @dcsite 存哪里?
    imlewc
    imlewc
    Aug 28, 2018
    27
    像 S3,七牛,OSS 都有 私密的 bucket
    假如有个文件库,根据文件 id 取对应的私密连接地址
    数据库就存储对应的 file_id 就可以了
    shehuizhuyi
    shehuizhuyi
    Aug 29, 2018 via iPhone
    28
    @zhengxiaowai 国内厂家有几个销毁的 身份证信息多值钱
    tyoung
    tyoung
    Aug 29, 2018 via Android
    29
    文件这种东西为什么要存数据库呢?真想不通有的开发是怎么想的,
    lcdxiangzi
    lcdxiangzi
    Aug 29, 2018
    30
    图片有几种存储方式?
    1、搭建文件系统
    2、BASE64 放数据库
    3、直接都在服务器某个路径下

    各有什么利弊,求大佬解释一下呢。。。
    Yanni0507
    Yanni0507
    Aug 29, 2018❤️1
    31
    @lcdxiangzi 楼上各路大神的核心意思在于两点,1,身份证照片这样的敏感信息,直接存数据库或者放在服务器的某个路径下,是不安全,不负责任的。2,文件实体不建议放数据库,数据库不是干这个事情的
    cxh116
    cxh116
    Aug 29, 2018 via Android
    32
    base64 的大小是原文件大小的 135% ,1g 的图片要多出 350m 出来
    feiyunruyue
    feiyunruyue
    Aug 29, 2018
    33
    存路径,文件放到 OSS 上
    scipio
    scipio
    Aug 29, 2018❤️3
    34
    你们持久化用户的身份证,有得到用户授权吗?

    有本事把公司名和 APP 名报出来。
    aheadlead
    aheadlead
    Aug 29, 2018
    35
    我擦 刚一个华住的事件你们还不吸取教训
    这东西存下来你们想干嘛?
    什么公司?
    nodin
    nodin
    Aug 29, 2018 via Android
    36
    信息泄露为何这么严重,看回复的做法就知道原因了
    jydeng
    jydeng
    Aug 29, 2018
    37
    不要存数据库,性能不行
    itskingname
    itskingname
    Aug 29, 2018
    38
    大家人肉楼主的公司,然后去举报这家公司非法保存身份证照片。
    xiaohei233
    xiaohei233
    Aug 29, 2018
    39
    数据库直接存 base64 图片不妥吧。我们当初图片存储用的阿里 oss,数据库直接放 url,敏感照片用的阿里防盗链来保证安全的。
    xiaohei233
    xiaohei233
    Aug 29, 2018
    40
    @lcdxiangzi 还有体量的问题,你一个 app 假设日活 1 万,自己存储没问题,如果日活百万千万,自己存储不划算的。
    dcsite
    dcsite
    Aug 29, 2018
    41
    @s609926202 先不说应不应该存储用户身份信息,图片文件肯定放在专门的文件服务器上啊!
    tangzhangming
    tangzhangming
    Aug 29, 2018
    42
    图片不允许公开访问
    简单做法,链接存一个字段里即可,毕竟很少存在只查背面的情况
    甚至可以单独存一张表,毕竟身份证除了后台不应该出现多条查询的情况,这样这张表其实使用量是非常少的,而且仅仅会根据 uid 或者身份证号码来查询,字段又少,单表存几千万上亿都没问题,项目用户量变大,分库分表时这部分需要改动的内容都很少
    imn1
    imn1
    Aug 29, 2018
    43
    首先,我同意#11 的,不应保存
    不过,国内总会有人要求存的,就算团队 leader 也扛不住
    加密不是防外,而是防内,避免权限失误或者临时工,就是跟网络分开的第二套管理系统

    我不太明白为何要考虑性能?身份证照片是常读数据么?用户要看、要改?
    存了也不让用户再读、再写啊,先暂存,然后迁移到离线机器,只给公司有权限管理或者公检法查看
    网络肯定不给这个读取接口,用户看自己的身份证照片干嘛?每天看着不对来改一次?
    rxzxf1993
    rxzxf1993
    Aug 29, 2018
    44
    阿里云 oss,搞个加密的 bucket 就 ok 了。
    ooooo
    ooooo
    Aug 29, 2018
    45
    @dcsite
    @zhengxiaowai
    @scipio
    @itskingname

    刚刚住店信息身份证都被泄露了
    你们这下一波就是要泄漏用户的身份证照片的节奏,谁敢拍胸膛保证绝对安全?
    这个比身份证号码泄漏更危险!!!
    如果是手持的话,更严重!

    这么做经过用户同意了吗?
    楼主是哪个公司的?

    淘宝的开店的手持身份证?
    证券公司的开户手持?

    强烈要求国内立即推行此政策
    难道不应该是验证完了就该删掉么?
    就像信用卡信息企业只许验证,服务器上不能留存一样的!

    哪天这些留存用户身份证照片已经手持的厂商们数据库被国外黑客脱裤了的话
    那可就有得玩了
    身份证,公民的住址,年龄,照片,人脸识别数据等
    这是在危害国家和全民的安全?

    请问,国内身份证号码可以改么?
    不行吧?
    abclucifer
    abclucifer
    Aug 29, 2018
    46
    不建议存数据库
    codespots
    codespots
    Aug 29, 2018❤️1
    47
    楼上的所有不是#11 楼做法的请报上公司名,我一律拉黑卸载贵司任何产品!
    Rizio
    Rizio
    Aug 29, 2018
    48
    以前还觉得搞 GFW 的不好,现在某些回复,果然是为了钱为了工作啥都干。
    lostberryzz
    lostberryzz
    Aug 29, 2018
    49
    图片加密有很成熟的方法,但是采纳不采纳就是其他方面的因素了
    qq976739120
    qq976739120
    Aug 29, 2018
    50
    哈哈,楼主跟我刚毕业一样,正确的做法是将文件存到一个地址,本地也好 oss 也好,字段存地址的 url 即可,希望对楼主有帮助 :)
    lcdxiangzi
    lcdxiangzi
    Aug 29, 2018❤️1
    51
    内存中销毁这个思路从数据安全角度看确实很专业。
    但是考虑到很多业务场景,比如,贷款审批,审批流程中风控人员可能是需要查看申请人的证件照片的,系统必须保留才可以吧。
    我觉得楼上好多人的言论有点太极端了,就事论事的讨论。
    rb6221
    rb6221
    Aug 29, 2018
    52
    哈哈,前几楼果然有杠精
    y835L9DyC5XD09kq
    y835L9DyC5XD09kq
    Aug 29, 2018
    53
    杭州 大数据创业公司 技术栈 Springboot+JPA+React 有 v 友看看是什么公司吗
    vgmdj
    vgmdj
    Aug 29, 2018
    54
    对象存储,oss,有很多免费的,数据库存地址就行了
    Telegram
    Telegram
    Aug 29, 2018 via iPhone
    55
    @westooy #47 国内各大公司你都可以去拉黑了,基本上不会有哪家会销毁。
    有些身份证照片后期需要客服审核,办业务需要用到,或者通关报关用,比如海淘,比如各种运营商开套餐合同用就要附带身份证照片。
    不是说销毁就销毁的。
    Telegram
    Telegram
    Aug 29, 2018 via iPhone
    56
    @lcdxiangzi #51 我和你一样的观点
    TrustOcean
    TrustOcean
    Aug 29, 2018
    57
    不建议存数据库
    Youen
    Youen
    Aug 29, 2018
    58
    存文件 ID
    shanliang
    shanliang
    Aug 29, 2018
    59
    建议数据库密码设置 123456,开启公网访问
    allenhu
    allenhu
    Aug 29, 2018
    60
    销毁是不可能销毁的,信用卡信息都不可能去销毁,只有不销毁,才能维持得了生活这样子。
    rotoava
    rotoava
    Aug 29, 2018
    61
    真是个很现实的问题:p2p 和 各类风控( AI 人脸 活体识别公司)有没有权利存储用户的身份证照片。(用户不知情状态下)
    laike9m
    laike9m
    Aug 29, 2018
    62
    存 GitHub 吧
    arthas2234
    arthas2234
    Aug 29, 2018
    63
    图片存数据库,备份数据库的时候你会哭
    jjianwen68
    jjianwen68
    Aug 29, 2018 via Android
    64
    支付宝是怎么处理用户身份证的
    NotNil1
    NotNil1
    Aug 29, 2018
    65
    @zhengxiaowai 因为跑路的时候 ,最后还可以卖一波数据换路费。
    neoFaster
    neoFaster
    Aug 29, 2018
    66
    看场景, 如果不会按正反面一类的场景单独搜索. 可以存储在一个字段里,按指定格式拼接存储. (当然这些所说的都是指存储 oss 返回的唯一标示 id.) 如果存储 base64 这种,那就最好两个字段.
    dodo2012
    dodo2012
    Aug 29, 2018
    67
    最简单就是保存成图片,然后审核完销毁,否则一是占空间,二是不安全,
    YiweiHangzhi
    YiweiHangzhi
    OP
    Aug 29, 2018
    68
    @kangkang 我们公司==
    taobibi
    taobibi
    Aug 31, 2018
    69
    我不知道贵公司存身份证照片干什么? 我就职的前物流公司的做法是买身份证识别的接口,身份证验证和比对,身份证读卡器验证,然后 OCR 转成文字存储,之后再邮寄东西只需要报手机号比对后就给你邮寄了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1084 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 128ms · UTC 23:42 · PVG 07:42 · LAX 15:42 · JFK 18:42
    ♥ Do have faith in what you're doing.