项目上线GooglePlay存在证书漏洞,导致杯具
来源:互联网 发布:linux dhcp安装 编辑:程序博客网 时间:2024/05/24 06:02
要写这篇文章已经好久了,一直没得空。
前段时间接受一项目(大致是6月下旬),是关于android6.0对应及一些新功能。 当时想着这应该很简单,对于去年已经发布的6.0,此时已经有很多手机都能升级6.0的操作系统,那么对应6.0的新特性应该是很简单的,可没想到差点愁死我,废话有点多了~~
首先在2016/5/17召开的google大会规定,app存在证书安全漏洞不能够在GooglePlay上发布,也是这个原因导致我浪费了很多时间
以下是被拒的提示信息:
APP被拒的提示信息:
此后在网上搜了很多种方法:
1、Vitamio的解决方案:
当时用的是vitamio4.0,官方提示直接升级到5.0.2 来解决X509证书漏洞问题;
2、X509TrusterManger 解决方案:
首先,改漏洞在网上有很多资料,大致方法都一样,在checkServerTrusted()方法中做以下处理:
@Override public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException { if (null == chain || 0 == chain.length) {throw new IllegalArgumentException("parameter is not used");} else if(null == authType || 0 == authType.length()){throw new IllegalArgumentException("parameter is not used");}try {// if the certificate chain is not trusted by this TrustManager. chain[0].checkValidity(); } catch (Exception e) { throw new CertificateException("Certificate not valid or trusted."); } }
总之就是当证书存在漏洞或者不可用是,捕捉异常。项目中有5处用到这个方法,都改完之后还是不行,还是报错,卡在这里很久
最后发现baidusdk中存在证书漏洞,在国外用的app,所以直接删掉baidusdk(项目用了两套地图,还有一套是googlemap),这样这个漏洞就算过了。也可以升级baidusdk到最新版。
3、onReceivedSslError证书漏洞
@Override public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { /* if (BuildConfig.DEBUG) { handler.proceed(); } else { handler.cancel(); }*/ AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setMessage("ssl証明書が正しくないページですが開いてもいいですか"); builder.setPositiveButton("yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { handler.proceed(); } }); builder.setNegativeButton("no", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { handler.cancel(); } }); builder.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK) { handler.cancel(); dialog.dismiss(); return true; } return false; } }); AlertDialog dialog = builder.create(); dialog.show(); }弹出一个dialog,这样修改之后还是被拒,同样被卡在这里很久
最终的解决方法,推荐方法
直接联系 GooglePlay开发人员支援小组
他们通过分析代码,直接定位漏洞存在代码的哪些地方,通过定位能够快速找到漏洞,支援小组反馈邮件如下:
因为只剩余一个证书漏洞,所以反馈的只有CustomWebView这个漏洞。
由于快速定位问题所在,所以耽搁很久的问题一下子解决了,所以建议大家解决不了直接联系技术支持小组。
以下是联系链接:
https://support.google.com/googleplay/android-developer/?hl=zh-Hant#topic=3450769
你也可以直接和支援小组对话。
- 项目上线GooglePlay存在证书漏洞,导致杯具
- 三星支付存在漏洞可导致黑客进行交易劫持
- android build.prop导致GooglePlay报错
- 安卓在GooglePlay上线后同时平板也能搜到
- 存在隐患:Gmail零日漏洞会导致邮件被窃取
- OpenSSL握手重协商过程中存在漏洞可导致拒绝服务
- 项目上线
- 项目上线
- 项目上线
- PHP PATH_INFO 存在漏洞
- app上线之证书申请
- 开心网某站存在远程命令执行漏洞涉及项目源码(ImageMagick补丁绕过)
- sun 称 java 存在漏洞!
- ReadProcessMemory()函数存在溢出漏洞
- sun 称 java 存在漏洞!
- 忘记密码存在的漏洞
- 项目上线的必要条件
- 1800项目上线后
- SQL UNION 聚合
- Logstash官方文档中文版-安装Logstash
- storm 的子节点机器重启后 supervisor无法启动
- Myeclipse 最新注册码
- Linux的常用经典命令(持续更新)
- 项目上线GooglePlay存在证书漏洞,导致杯具
- mysql 和 postgres 查看数据库结构命令
- 《Java多线程之CAS》
- zookeeper知识点一(同步创建节点)
- 最小生成树算法和单源最短路径算法
- Unity3D Shader官方教程翻译(四)----Shader语法:SubShader
- SQL Server数据库ROW_NUMBER()函数使用详解
- 图像算法研究---一种简单的YUV转RGB的优化算法
- 类加载及对象创建