有啥方法可以在 ionic 中验证应用程序签名?

Posted

技术标签:

【中文标题】有啥方法可以在 ionic 中验证应用程序签名?【英文标题】:There is any way to validate app signature in ionic?有什么方法可以在 ionic 中验证应用程序签名? 【发布时间】:2021-02-22 02:48:28 【问题描述】:

已经2天了。我正在寻找有关 ionic 中的应用程序证书验证库/函数的一些线索。就像在 android 中我发现 SignatureCheck.java enter link description here 那么我们是否也可以在 TypeScript 中实现类似的东西来检查应用程序证书是否相同? 任何建议都会有帮助谢谢

【问题讨论】:

【参考方案1】:

我刚才也在想同样的问题,经过一番搜索后,我发现了这个帖子:https://medium.com/@atifhussain.nu21/ssl-pinning-in-ionic-cordova-based-applications-ce993adcc07

这看起来是一个非常可行的解决方案,使用了一个 cordova 插件/库“cordova-plugin-sslcertificatechecker”。

示例代码:

import  Injectable, Injector  from '@angular/core';
import 
 HttpEvent,
 HttpHandler,
 HttpInterceptor,
 HttpRequest
 from '@angular/common/http';
import  Network  from '@ionic-native/network';
import  Observable  from 'rxjs/Rx';
import  CONFIG_CONSTANTS  from '../../common/constant/app-config';
import  MESSAGE_CONSTANTS  from '../../common/constant/message';
declare var window: any;
@Injectable()
export class RequestInterceptor implements HttpInterceptor 
 helperFunction: HelperFunctions;
constructor(private network: Network, private injector: Injector)  
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> 
this.helperFunction = this.injector.get(HelperFunctions);
let setHeader = 
   'ContentType': 'application/json',
   'Accept': 'application/json',
   'DEVICETYPE': 'MOBILE',
   'X-Requested-With': 'XMLHttpRequest',
   'Content-Type': 'application/json',
   'dataType': 'json'
  ;
let Host = CONFIG_CONSTANTS.BASE_URL;
if (this.network.type === 'none') 
   this.helperFunction.showAlert(MESSAGE_CONSTANTS.CONNECTION_NOT_WORKING);
   return next.handle(request);
  
return this.checkSecurity(`$Host$request.url`, request).flatMap((modifiedReq) => 
   let newReq = null;
   if (modifiedReq['message'] === 'CONNECTION_SECURE') 
    newReq = request.clone(
     url: `$Host$request.url`,
     setHeaders: setHeader
    );
   
   return next.handle(newReq);
  );
 
checkSecurity(URL, request) 
  return new Observable((observer) => 
   window.plugins.sslCertificateChecker.check(
    (message) => 
     return observer.next(req: request, message: message);
    ,
    (message) => 
     return observer.error(req: request, message: message);
    ,
    URL,
    CONFIG_CONSTANTS.FINGERPRINT);
  );
 

我还没有亲自为我自己的项目尝试过这个。我希望这会有所帮助,让我们知道。 :)

【讨论】:

以上是关于有啥方法可以在 ionic 中验证应用程序签名?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2/Ionic 2 应用程序中的手写/绘图?

ionic生成签名的APK方法总结

Google Plus 登录在已签名的 ionic 应用程序中给出错误代码 10

用于用户身份验证的个人访问令牌和 json Web 令牌有啥区别?

数字签名流程的策略?

有啥用!登录一些红宝石方法[重复]