如何设计某个 H5 只能在待在私有 App 里? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
m9rco
V2EX    Android

如何设计某个 H5 只能在待在私有 App 里?

  •  
  •   m9rco 2019-03-08 16:17:36 +08:00 13033 次点击
    这是一个创建于 2407 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想的一个思路是通过 h5 里所有接口通过 deeplink 获取,

    h5 -> app -> server
    server -> app -> h5

    因为接口存在加密,若是加解密放在 h5 里就有点尬了,或者说,提供一个方法只用来加解密?
    17 条回复    2019-03-19 10:38:38 +08:00
    m9rco
        1
    m9rco  
    OP
       2019-03-08 16:18:45 +08:00
    页面是一个私有的服务,但需要用 h5 实现
    w88975
        2
    w88975  
       2019-03-08 16:21:56 +08:00
    把加密放到 app 里,H5 调用 app 的加密算法不就行了?
    sonyxperia
        3
    sonyxperia  
       2019-03-08 16:23:32 +08:00
    是类似 微信那种请在微信客户端打开页面 这种效果嘛?
    mooncakejs
        4
    mooncakejs  
       2019-03-08 16:25:44 +08:00 via iPhone
    最简单的就是用 token 放请求头里,省事就自定义一个请求头,浏览器没有的那种
    m9rco
        5
    m9rco  
    OP
       2019-03-08 16:28:04 +08:00
    @sonyxperia 不是,是因为接口全是异步加密的,所以通过 app 来加解密
    m9rco
        6
    m9rco  
    OP
       2019-03-08 16:28:42 +08:00
    @mooncakejs 任何客户端的东西都是可模仿的
    m9rco
        7
    m9rco  
    OP
       2019-03-08 16:30:16 +08:00
    @w88975 考虑过这样,但是,前端同学开发的时候就很蛋疼,我想的是我可以直接扩展 ajax 方法,在测试的时候同样实现一套 web 前端的加解密方便前端同学开发
    mooncakejs
        8
    mooncakejs  
       2019-03-08 16:30:30 +08:00 via iPhone
    @m9rco 防止浏览器打开就好了啊。 如果真要实现客户端才能打开,那用 CS 架构,不要 bs
    Deville
        9
    Deville  
       2019-03-08 17:27:57 +08:00
    相当于 license 签名?
    master
        10
    master  
       2019-03-08 17:29:28 +08:00
    可以把数据交互由 APP 完成 H5 和 APP 交互 这样直接打开网页不就什么都没有 就也不存在数据、H5 访问接口接口加解密的问题
    hoythan
        11
    hoythan  
       2019-03-08 17:36:24 +08:00
    设置一套 rsa 加密规则:

    前端给一个公钥用于解密
    app 加密当前日期或某段数据拼接到 h5 地址栏上或 post 方式发送,h5 检查地址栏上加密字段有效性,无效不打开。
    koalli
        12
    koalli  
       2019-03-08 17:38:14 +08:00
    在 App 端启动一个代理服务器来加密解密可以吗?也不用扩展 ajax 了,h5 还是用 h5 的方法开发,只是连接的时候是连接这个代理服务器。
    cherrycatz
        13
    cherrycatz  
       2019-03-09 08:04:39 +08:00
    不是判断请求的头就行了
    greatbody
        14
    greatbody  
       2019-03-09 10:49:52 +08:00
    告诉你一个好主意。H5 加载后,需要等浏览器调用特定的接口才显示。否则 5 秒后自动销毁。
    lizhuoli
        15
    lizhuoli  
       2019-03-09 13:55:56 +08:00 via iPhone
    这不就是一个 JSBridge 能解决的问题,你的加解密在 Native,然后正常 Web 请求就行了,再怎么模仿除非能完整逆向分析 Native 代码出来,否则肯定没法伪造
    lizhuoli
        16
    lizhuoli  
       2019-03-09 13:58:33 +08:00 via iPhone
    @m9rco 你这还得考虑测试(没有 Native 容器),就和自己的只在 Native 中运行矛盾了,是可以通过测试环境 Hook 或者什么提供,但是这样最后的回归成本会增大很多。可以考虑把加解密模块用 C 写,编译到 WebAssmebly,保证两边的结果是一致的
    m9rco
        17
    m9rco  
    OP
       2019-03-19 10:38:38 +08:00
    @lizhuoli 好的 谢谢您
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     995 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:09 PVG 02:09 LAX 11:09 JFK 14:09
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86