m9rco
V2EX  ›  Android

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

  •  
  •   m9rco · Mar 8, 2019 · 15203 views
    This topic created in 2803 days ago, the information mentioned may be changed or developed.
    我想的一个思路是通过 h5 里所有接口通过 deeplink 获取,

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

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

    前端给一个公钥用于解密
    app 加密当前日期或某段数据拼接到 h5 地址栏上或 post 方式发送,h5 检查地址栏上加密字段有效性,无效不打开。
    koalli
    koalli
    Mar 8, 2019
    12
    在 App 端启动一个代理服务器来加密解密可以吗?也不用扩展 ajax 了,h5 还是用 h5 的方法开发,只是连接的时候是连接这个代理服务器。
    cherrycatz
    cherrycatz
    Mar 9, 2019
    13
    不是判断请求的头就行了
    greatbody
    greatbody
    Mar 9, 2019
    14
    告诉你一个好主意。H5 加载后,需要等浏览器调用特定的接口才显示。否则 5 秒后自动销毁。
    lizhuoli
    lizhuoli
    Mar 9, 2019 via iPhone
    15
    这不就是一个 JSBridge 能解决的问题,你的加解密在 Native,然后正常 Web 请求就行了,再怎么模仿除非能完整逆向分析 Native 代码出来,否则肯定没法伪造
    lizhuoli
    lizhuoli
    Mar 9, 2019 via iPhone
    16
    @m9rco 你这还得考虑测试(没有 Native 容器),就和自己的只在 Native 中运行矛盾了,是可以通过测试环境 Hook 或者什么提供,但是这样最后的回归成本会增大很多。可以考虑把加解密模块用 C 写,编译到 WebAssmebly,保证两边的结果是一致的
    m9rco
    m9rco
    OP
    Mar 19, 2019
    17
    @lizhuoli 好的 谢谢您
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2426 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 122ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    ♥ Do have faith in what you're doing.