App 端安详的办理方案
- 今朝 App 的收集通讯根基都是用 HTTPS 的处事,可是任意一个抓包器材都是可以看到 HTTPS 接口的具体数据,为了做到防备抓包和无法模仿接口的环境,我们采纳以下法子:
- 中间人盗用数据,我们可以采纳 HTTPS 证书的双向认证,这样子实现的结果就是中间人在开启抓包软件说明 App 的收集哀求的时辰,收集会自动断掉,无法查察说明哀求的环境
- 对付防备用户仿照我们的哀求再次提倡哀求,我们可以回收 「防重放计策」,用户再也无法仿照我们的哀求,再次去获取数据了。
- 对付 App 内的 H5 资源,反爬虫方案可以回收上面的办理方案,H5 内部的收集哀求可以通过 Hybrid 层让 Native 的手段去完成收集哀求,完成之后将数据回调给 JS。这么做的目标是每每我们的 Native 层有完美的账号系统和收集层以及精采的安详计策、鉴权系统等等。
- 后期会接头 App 安详性的更深条理玩法,好比从逆向的角度出发怎样掩护 App 的安详性。
关于 Hybrid 的更多内容,可以看看这篇文章 Awesome Hybrid
- 好比 JS 必要提倡一个收集哀求,那么凭证上面将收集哀求让 Native 去完成,然后回调给 JS
- var requestObject = {
- url: arg.Api + "SearchInfo/getLawsInfo",
- params: requestparams,
- Hybrid_Request_Method: 0
- };
- requestHybrid({
- tagname: 'NativeRequest',
- param: requestObject,
- encryption: 1,
- callback: function (data) {
- renderUI(data);
- }
- })
Native 代码(iOS为例)
- [self.bridge registerHandler:@"NativeRequest" handler:^(id data, WVJBResponseCallback responseCallback) {
-
- NSAssert([data isKindOfClass:[NSDictionary class]], @"H5 端不按套路");
- if ([data isKindOfClass:[NSDictionary class]]) {
-
- NSDictionary *dict = (NSDictionary *)data;
- RequestModel *requestModel = [RequestModel yy_modelWithJSON:dict];
- NSAssert( (requestModel.Hybrid_Request_Method == Hybrid_Request_Method_Post) || (requestModel.Hybrid_Request_Method == Hybrid_Request_Method_Get ), @"H5 端不按套路");
-
- [HybridRequest requestWithNative:requestModel hybridRequestSuccess:^(id responseObject) {
-
- NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:nil];
- responseCallback([self convertToJsonData:@{@"success":@"1",@"data":json}]);
-
- } hybridRequestfail:^{
-
- LBPLog(@"H5 call Native`s request failed");
- responseCallback([self convertToJsonData:@{@"success":@"0",@"data":@""}]);
- }];
- }
- }];
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|