V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
m9rco
V2EX  ›  Android

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

  •  
  •   m9rco · 2019-03-08 16:17:36 +08:00 · 5199 次点击
    这是一个创建于 1847 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想的一个思路是通过 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   ·   我们的愿景   ·   实用小工具   ·   1000 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:54 · PVG 03:54 · LAX 12:54 · JFK 15:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.