V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
eachin
V2EX  ›  程序员

有没有办法防止 app 内资源被提取呢?

  •  
  •   eachin · 2021-04-28 11:11:49 +08:00 · 5315 次点击
    这是一个创建于 1331 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有没有办法防止 app 内资源被提取呢?正在开发一个教育行业的 app,核心资源就是一些试卷( pdf ),字帖( jpg)等形式用来被用户调取打印,有办法防止非法用户直接获取到这些资源吗?或者获取到以后不便直接修改这样。
    44 条回复    2021-04-29 13:30:05 +08:00
    dreamist
        1
    dreamist  
       2021-04-28 11:14:45 +08:00
    可以加密,把文件内容做加密,密钥从云端下发,这样应该能避免一些。不过其实还是能被拿到的,最起码可以别人可以截屏啊。。。
    murmur
        2
    murmur  
       2021-04-28 11:15:56 +08:00
    你想多了,有钱什么都干得出,你以为各大搜题 app 的题都是哪里来的,不都是买资料录入进来的,别人连纸张扫描手抄都不怕,还怕你的水印,看你是出题快还是别人抄的快
    nicevar
        3
    nicevar  
       2021-04-28 11:21:29 +08:00
    核心资源可复制性太强,防也只能防住一小部分人
    Leonard
        4
    Leonard  
       2021-04-28 11:21:33 +08:00
    能防止用户截屏吗
    gam2046
        5
    gam2046  
       2021-04-28 11:21:55 +08:00
    能看就架不住截图、外部设备翻录。

    所以:
    1 、用户侧设备不持久化保存
    2 、服务端下发的文件可进行 AES 等方式加密,避免中间人或内存中获取明文
    3 、如果有能力直接下发图片并且签署盲水印,做到事后泄露能够回溯源头。但是盲水印对抗翻录的效果也不尽如人意。
    geekvcn
        6
    geekvcn  
       2021-04-28 11:22:33 +08:00
    只要资源在本地没有任何办法防止被获取,只能提高获取难度加密等,你可以把重要资源放在服务端,预览资源加上水印,降低清晰度和完整性等总之就是降低可用性,下载的时候才是正常资源
    eachin
        7
    eachin  
    OP
       2021-04-28 11:22:40 +08:00
    @Leonard 截屏手抄这个是真的无解吧
    eachin
        8
    eachin  
    OP
       2021-04-28 11:23:52 +08:00
    @geekvcn 不能加水印,这个首先得保证用户打印效果是所见即是所得的
    geekvcn
        9
    geekvcn  
       2021-04-28 11:25:05 +08:00
    @eachin 现在都是 OCR,谁还手抄,总之资源在本地就好比搞到个装满黄金的保险柜,只要花功夫早晚能打开,除非打开的成本超过保险柜里黄金的成本
    eachin
        10
    eachin  
    OP
       2021-04-28 11:27:10 +08:00
    @gam2046 嗯,也只能提高一点点难度了。外部设备是没办法的,软件是面向大众的
    proxychains
        11
    proxychains  
       2021-04-28 12:36:35 +08:00
    盲水印?
    OCR 识别之后重新排版就是我的试题了...
    renmu123
        12
    renmu123  
       2021-04-28 12:39:06 +08:00 via Android
    没有办法,抖音淘宝都防不住爬虫,顶多在请求的时候加上加密参数,能防住一片人,再对解包加上一些难度
    no1xsyzy
        13
    no1xsyzy  
       2021-04-28 12:44:54 +08:00
    想起早期传言的字典防盗版:
    给字典里添加少量错别字。
    不管翻录,谁传播盗版就起诉谁。
    sillydaddy
        14
    sillydaddy  
       2021-04-28 12:50:28 +08:00
    水印的形态不只是图像!!还记得阿里截图员工被查出来的事情吗?

    既然试卷的内容、字帖的内容都是你能控制的,为什么不在试卷内容中加入“文字指纹”呢?给每个用户分发的都是带有不同指纹的试卷。甚至如果可以的话,每套试卷中的题目都作一些细微的变形。比如数学试卷中的方程系数、语文试卷的词组选择。

    试卷是分期发放、一次交费,然后抄袭一次,永久封号!!钱款不退,甚至倒赔!!
    dingwen07
        15
    dingwen07  
       2021-04-28 13:06:10 +08:00 via iPhone   ❤️ 1
    都能打印了,直接 print to PDF 或者从打印机里提取根本防不了吧?
    domodomo
        16
    domodomo  
       2021-04-28 14:19:44 +08:00
    想拿怎么都能拿到,你不控制硬件终端是解决不了这个问题的。
    opengps
        17
    opengps  
       2021-04-28 14:57:11 +08:00
    加密传输,客户端加密存储。
    虽说要拿始终能拿到,但是起码先把入门级小白防掉,不然会被抄袭的到处都是,甚至人家会引流的做的比你源站更有收益。
    leir
        18
    leir  
       2021-04-28 15:54:00 +08:00
    对这个问题有一些经验,简单回答一下

    数据量级:如果试卷、字贴只有千 /万这种级别,这个防不住人肉获取,所以主要考虑人肉这块的处理
    1, 账号注册环节设置更高的门槛
    2,防截屏
    3,如果提供打印功能,可以设置频次控制
    4,如果提供下截,pdf 是支持电子签名的,可以做签名溯源用
    5,如果目前有一些证据,可以做案件打击一下

    数据量级够大,人肉获取只能一部分,那就考虑防爬。
    1, app 加壳,接口数据加密,提升反爬的门槛
    2,业务逻辑做行为检测,可疑动作直接做账号处罚(可能有客诉,需要有客诉预期和预案),提升爬虫成本


    以上两方面都需要做,只是需要按实际情况排优先级

    其它方案:
    如果对这块不太熟悉,自己做 ROI 可能不乐观(做了没效果),也可以咨询 /购买 业务安全的厂商的服务,熟悉了再考虑自己做
    Jirajine
        19
    Jirajine  
       2021-04-28 16:04:33 +08:00 via Android
    你都允许用户打印了那有个毛用,直接搞个打印机驱动就拿到数据了。
    并且打印本身也很难盲水印吧,尤其是黑白的,直接二值化一下,根本藏不住水印。
    IvanLi127
        20
    IvanLi127  
       2021-04-28 16:27:48 +08:00
    参考国内视频 app ?搞私有格式,搞各种可见的不可见的水印,搞法务。
    SlipStupig
        21
    SlipStupig  
       2021-04-28 16:31:38 +08:00
    @sillydaddy 这样防不住 OCR 啊,用 OCR 识别后重新发就好了
    imn1
        22
    imn1  
       2021-04-28 16:57:04 +08:00
    如果你的资源是原创,独家的,就写上法律声明(每页一句),然后交给法务部门处理就是了
    没钱搞个法务部门?那就啥也别指望,技术都可以抄,更何况资源?人家说不准把你防盗的技术都一起抄过去用呢
    sillydaddy
        23
    sillydaddy  
       2021-04-28 17:05:29 +08:00
    水印形态不只是图像啊!还记得阿里截图的员工被查出来的事情吗??

    既然试卷的内容,字帖的内容都是你能控制的,为啥不在试卷内容中加入“文字指纹”呢?给每个用户分发的都是带不同指纹的试卷。甚至如果可以,每套试卷中的题目都作一些细微变形。比如数学试卷中方程的系数、语文试卷词组的选择。

    试卷是分期发放的、一次交费,抄袭一次,永久封号!钱款不退,甚至倒赔!

    ~~~
    @SlipStupig
    上面的一段,是#14 楼的“水印版”,加的“文字水印”是:
    的 , 啥 有 的话 的 的 的
    的 然后 ! !
    Kiriya
        24
    Kiriya  
       2021-04-28 17:16:02 +08:00
    文件格式加密,像网易云这样弄个自己专属文件格式
    mxT52CRuqR6o5
        25
    mxT52CRuqR6o5  
       2021-04-28 17:27:39 +08:00
    @sillydaddy 理论上确实可行,不过实践起来技术难度不小,如果真的能把这个技术做得很好用,都能直接靠这个技术吃饭了
    4kingRAS
        26
    4kingRAS  
       2021-04-28 18:19:29 +08:00
    防不住抄的,但是可以用数字水印查到源头,对于重新排版的可以插入关键字,如题目里的数字,做标记,抓到源头靠法律武器挽回损失
    ilxv
        27
    ilxv  
       2021-04-28 18:37:41 +08:00
    我记得税务 APP 还是哪个官方 APP 来着,不允许截图
    luckycatio
        28
    luckycatio  
       2021-04-28 19:07:47 +08:00 via iPhone
    ……不是有虚拟打印机这玩意吗,能打印就可以直接提出来的吧
    ch2
        29
    ch2  
       2021-04-28 21:19:06 +08:00
    反爬虫只能延缓,并不能阻止你的内容被被人全拿走
    Oceanhime
        30
    Oceanhime  
       2021-04-28 21:46:26 +08:00
    我身边很多初高中生的学校都是扫描 OCR 印其它学校的试卷, 修改就直接涂改带往上涂改, 如果你面对的是这样的用户, 我觉得那和加密技术没有太大关系。
    billlee
        31
    billlee  
       2021-04-28 22:14:17 +08:00
    打印机用的 PostScript 就是 PDF 它爸,只要能打印,就能导出 PostScript, 然后转成 PDF.
    HenryGe
        32
    HenryGe  
       2021-04-28 22:41:25 +08:00
    我有解决方案也不会在这里说,这已经涉及到核心的商业机密了。
    Ryan3yan
        33
    Ryan3yan  
       2021-04-29 00:04:53 +08:00 via Android
    @Leonard 能吧,防截屏,钉钉好像有,clubhouse 也有
    coldear
        34
    coldear  
       2021-04-29 00:24:03 +08:00
    Netflix app 做了防录屏
    zeroDev
        35
    zeroDev  
       2021-04-29 00:59:14 +08:00 via Android
    到了用户端本地,数据就当做送给用户了
    除非你都不让他看
    ice000
        36
    ice000  
       2021-04-29 08:31:10 +08:00
    APK 可以加壳,数据可以加密,可以阻止数据层面的盗用。
    但是录屏+OCR 就无解了
    Leonard
        37
    Leonard  
       2021-04-29 09:06:31 +08:00
    @Ryan3yan #33 钉钉和 clubhouse 刚试了,并不能防,我见过 iOS 防截屏的只有 Netflix,而且只要 DRM 加密视频才能防
    R18
        38
    R18  
       2021-04-29 09:14:43 +08:00
    技术不能解决所有问题,你们需要的是 数字水印 + 强大的法务
    Ackvincent
        39
    Ackvincent  
       2021-04-29 09:36:51 +08:00
    没有什么是不能 dump 的,不如放弃加密,改变一下自己的思路。
    dadachen1997
        40
    dadachen1997  
       2021-04-29 09:40:48 +08:00
    你不可能完全保证资源不外露,说白了是一个成本问题。
    bk201
        41
    bk201  
       2021-04-29 10:11:51 +08:00
    我觉得能不能换个思路,就是翻录了怎么溯源与取证,之后就交给法务部门。
    fffang
        42
    fffang  
       2021-04-29 10:45:56 +08:00
    技术上来说,你可以自定义一种 pdf 格式,你甚至可以把 pdf 文件的二进制从头到尾反过来写,然后在端上在按规则解成 pdf 加载。但是这种防不住 OCR 和截屏。
    jpacg
        43
    jpacg  
       2021-04-29 10:49:56 +08:00
    防君子不防小人吧,从技术层面上不可能防的住。
    imlinhanchao
        44
    imlinhanchao  
       2021-04-29 13:30:05 +08:00   ❤️ 1
    这是个法律问题,不是技术问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3046 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:57 · PVG 21:57 · LAX 05:57 · JFK 08:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.