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

2019-03-08 16:17:36 +08:00
 m9rco
我想的一个思路是通过 h5 里所有接口通过 deeplink 获取,

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

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

前端给一个公钥用于解密
app 加密当前日期或某段数据拼接到 h5 地址栏上或 post 方式发送,h5 检查地址栏上加密字段有效性,无效不打开。
koalli
2019-03-08 17:38:14 +08:00
在 App 端启动一个代理服务器来加密解密可以吗?也不用扩展 ajax 了,h5 还是用 h5 的方法开发,只是连接的时候是连接这个代理服务器。
cherrycatz
2019-03-09 08:04:39 +08:00
不是判断请求的头就行了
greatbody
2019-03-09 10:49:52 +08:00
告诉你一个好主意。H5 加载后,需要等浏览器调用特定的接口才显示。否则 5 秒后自动销毁。
lizhuoli
2019-03-09 13:55:56 +08:00
这不就是一个 JSBridge 能解决的问题,你的加解密在 Native,然后正常 Web 请求就行了,再怎么模仿除非能完整逆向分析 Native 代码出来,否则肯定没法伪造
lizhuoli
2019-03-09 13:58:33 +08:00
@m9rco 你这还得考虑测试(没有 Native 容器),就和自己的只在 Native 中运行矛盾了,是可以通过测试环境 Hook 或者什么提供,但是这样最后的回归成本会增大很多。可以考虑把加解密模块用 C 写,编译到 WebAssmebly,保证两边的结果是一致的
m9rco
2019-03-19 10:38:38 +08:00
@lizhuoli 好的 谢谢您

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/542543

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX