| 
                         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":@""}]); 
 -         }]; 
 -     } 
 - }]; 
 
                          (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |