标签: android-security

来自Google Play的SSL警告

得到谷歌播放的警告.

如何处理WebViewClient.onReceivedSslError处理程序的不安全实现的"SSL错误处理程序漏洞".

"请尽快解决此漏洞并增加已升级APK的版本号.要正确处理SSL证书验证,只要服务器提供的证书符合您的期望,就更改您的代码以调用SslErrorHandler.proceed(),并调用SslErrorHandler .cancel()否则."

ssl android webview google-play android-security

11
推荐指数
1
解决办法
9736
查看次数

Android:删除OpenCV旧版本会解决Libpng漏洞警告吗?

我收到了来自Google Play商店的电子邮件 - "Google Play警告:您正在使用易受攻击的libpng版本".

电子邮件包含以下信息 - https://support.google.com/faqs/answer/7011127

我没有在我的应用程序中使用libpng库.但是,在我的Android应用程序中,我使用的是OpenCV2.4.5库.在互联网上搜索后,我发现OpenCV库使用了libpng.

我的问题 - 将OpenCV2.4.5升级到OpenCV3.1.0将解决"易受攻击的libpng版本"警告?

libpng android-security

11
推荐指数
2
解决办法
3655
查看次数

"这个应用程序包含试图绕过android的安全保护的代码"的原因

我已经在一个非常温和的Android应用程序上工作了几个月了,当我尝试从IntelliJ重新安装它时,我突然开始在我的设备上收到此消息.

在此输入图像描述

我的问题是,什么样的东西会导致Android操作系统显示此消息?如果我要发布这个应用程序,我当然不希望我的用户在安装之前必须看到这个.

android intellij-idea gradle android-security

11
推荐指数
1
解决办法
3758
查看次数

您的应用正在使用内容提供程序以及openFile的不安全实现

在Playstore上发布我的应用程序后,我已收到此电子邮件:

您好Google Play开发人员,

我们查看了[MyAppName],其软件包名称为com.example.myappname,发现您的应用使用了包含用户安全漏洞的软件。具有这些漏洞的应用程序可能会泄露用户信息或损坏用户的设备,并且可能被视为违反了我们的恶意行为政策。

以下是问题列表以及您最近提交的文件中检测到的相应APK版本。请迁移您的应用,以尽快使用更新的软件,并增加已升级APK的版本号。

您的应用正在使用带有不安全的openFile实现的内容提供程序。

要解决此问题,请按照此Google帮助中心文章中的步骤进行操作。

漏洞APK版本修复路径遍历的最后期限您的应用程序使用了带有不安全实施openFile的内容提供程序。

要解决此问题,请按照此Google帮助中心文章中的步骤进行操作。

2019年6月1日漏洞APK版本修复的最后期限要确认您已正确升级,请将应用程序的更新版本提交到Play控制台,并在五个小时后返回。如果应用程序未正确更新,我们将显示警告消息。


我在应用程序中使用了Realm数据库,iText pdf库,文件提供程序。我正在使用FileProvider使用意图从存储中打开pdf文件。

res> xml> provider_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path
        name="external_files"
        path="." />
</paths>
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.appName">

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_icon"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_icon"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        ...

        <provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider_paths" />
        </provider>
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

TemplatesFragment.java

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/MyCvs/Templates/" + templateName);
        Uri uriPdf = FileProvider.getUriForFile(getActivity(), BuildConfig.APPLICATION_ID + ".provider", file); …
Run Code Online (Sandbox Code Playgroud)

android-security

10
推荐指数
2
解决办法
414
查看次数

android Google Play警告:SSL错误处理程序漏洞

我在我的应用程序中使用gorbin/ASNE SDK.我最近收到了Google发来的一封电子邮件,内容如下:"Google Play警告:SSL错误处理程序漏洞".在这封电子邮件中,Google解释说我的应用程序有["WebViewClient.onReceivedSslError处理程序的不安全实现"]

他们建议我["要正确处理SSL证书验证,只要服务器提供的证书符合您的期望,就更改代码以调用SslErrorHandler.proceed(),并调用SslErrorHandler.cancel()否则"]

这是我的方法实现:

   public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();
            }
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

ssl android google-play android-security

9
推荐指数
2
解决办法
1万
查看次数

Android Key Store API 23,使用setUserAuthenticationRequired而不使用指纹扫描程序

我尝试使用Google示例(BasicAndroidKeyStore)生成密钥对.我做的唯一修改是设置setUserAuthenticationRequired(true)KeyGenParameterSpec.Builder.

我认为它可以在带有嵌入式指纹扫描仪的设备上正常工作,但是在OnePlus One上运行(在Android 6.0下工作),我得到以下异常:

At least one fingerprint must be enrolled to create keys requiring user authentication for every use

手机确实设置了锁定屏幕以使用该模式,但显然它需要指纹进行身份验证.知道如何在没有实际指纹识别器的情况下使用API​​ 23密钥库吗?

android android-keystore android-security android-fingerprint-api

9
推荐指数
1
解决办法
2274
查看次数

SafetyNet认证中是否需要api密钥?

我已成功为SafetyNet认证创建了后端服务和Android客户端.当我将jws令牌发送到我的服务器并尝试验证它的证书时,事实证明没有签署它的证书.

我应该在我的Android应用程序中添加api密钥吗?

我的认证结果:

eyJhbGciOiJSUzI1NiIsIng1YyI6WyJNSUlFaURDQ0EzQ2dBd0lCQWdJSWNkK3ZTTGZWdWxrd0RRWUpLb1pJaHZjTkFRRUxCUUF3U1RFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFSQmdOVkJBb1RDa2R2YjJkc1pTQkpibU14SlRBakJnTlZCQU1USEVkdmIyZHNaU0JKYm5SbGNtNWxkQ0JCZFhSb2IzSnBkSGtnUnpJd0hoY05NVFl3TnpFeU1UVTBNelUwV2hjTk1UY3dOekV4TURBd01EQXdXakJzTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNBd0tRMkZzYVdadmNtNXBZVEVXTUJRR0ExVUVCd3dOVFc5MWJuUmhhVzRnVm1sbGR6RVRNQkVHQTFVRUNnd0tSMjl2WjJ4bElFbHVZekViTUJrR0ExVUVBd3dTWVhSMFpYTjBMbUZ1WkhKdmFXUXVZMjl0TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3WEtyS0ZRRlBTckthS252NG9MSUhXNlVVMEk2STV2Q1FERFJOUlg2NWQrMVJLUWg0aDNoUHlTQ21MR2thREg0Q3Rud1lCdmRhWmZHUnVJVWx4K21zRjlkbU8rZzR0U2tSaXdrRzBxZ1VVN3docDk2ZHJoZkFrdDdPc2RzUWhmQWlTcmljdDlrTTRISElOVFVadjU0bXhkQmI0SkVBSlAvWlBDL2h5alAwRnlwNFlWVkdGN3RrQ09zUTVzYlB3cTBrbVJ0citobG41TXYwN1oxdkQwTG1MMU8yQy9qQUVCWGlhV3IzTjltenRXK2w3dEllOW1yY3FvUTB1UXdDWTd6YWdjb1czeFRmVExKVGdGTU5ZU0RtaDBEV2NZZUhidjNHQUtTR0hCSWZIWlQranhhZTlwam5pSi8zY3VmOWhVcUZPTGV3blI0TGdiTzNtSlc4a0dtWVFJREFRQUJvNElCVHpDQ0FVc3dIUVlEVlIwbEJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUIwR0ExVWRFUVFXTUJTQ0VtRjBkR1Z6ZEM1aGJtUnliMmxrTG1OdmJUQm9CZ2dyQmdFRkJRY0JBUVJjTUZvd0t3WUlLd1lCQlFVSE1BS0dIMmgwZEhBNkx5OXdhMmt1WjI5dloyeGxMbU52YlM5SFNVRkhNaTVqY25Rd0t3WUlLd1lCQlFVSE1BR0dIMmgwZEhBNkx5OWpiR2xsYm5Sek1TNW5iMjluYkdVdVkyOXRMMjlqYzNBd0hRWURWUjBPQkJZRUZON1FsYndMa3BYbUNQbmxLS3FFdDdvc0JpYW5NQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURWUjBqQkJnd0ZvQVVTdDBHRmh1ODltaTFkdldCdHJ0aUdycGFnUzh3SVFZRFZSMGdCQm93R0RBTUJnb3JCZ0VFQWRaNUFnVUJNQWdHQm1lQkRBRUNBakF3QmdOVkhSOEVLVEFuTUNXZ0k2QWhoaDlvZEhSd09pOHZjR3RwTG1kdmIyZHNaUzVqYjIwdlIwbEJSekl1WTNKc01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQnV4UEpqeE9GcjlqOEJUT0swbGhNNy8zVUN3d2RjSTFFZExmRGx4NmJCWW53SmVPUThKdC9Vd1VkcTFGTWRMM2gydkVTYVFkUVdYQTVCWE9YenI1TXV2V0xYaldKRjRsb0E4VzBTVDQyUDd6MWsyT29qb3JsNXZabkhjY08vZzhFd0ZpRlVINCsydXF1NVFzWmpVZGxMS2FFUWhJZTcvU2x2Qk41eHlZd0RaMlp0R00rdlVnVlFkbXpaV0puTGNHZFVSUGN3N2tlOWlNTFZKcXUrR0Z4c1lJSXYwMW1EQlVlblNUNFRsYWlEUG1nUmwzN3lCQWpUNGVaQlBIRzBGUzhna3FKZzAzMnhjNFdPNE1WMk1ZeEN0NWVzSllaOU04Y09QRFVjOEVYOUlwbC9FT1IrL25Mb2NRSEhIazhJQlhsbDVGM2lnN1RpOGFCNTJUMFdRaEIrIiwiTUlJRDhEQ0NBdGlnQXdJQkFnSURBanFTTUEwR0NTcUdTSWIzRFFFQkN3VUFNRUl4Q3pBSkJnTlZCQVlUQWxWVE1SWXdGQVlEVlFRS0V3MUhaVzlVY25WemRDQkpibU11TVJzd0dRWURWUVFERXhKSFpXOVVjblZ6ZENCSGJHOWlZV3dnUTBFd0hoY05NVFV3TkRBeE1EQXdNREF3V2hjTk1UY3hNak14TWpNMU9UVTVXakJKTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHQTFVRUNoTUtSMjl2WjJ4bElFbHVZekVsTUNNR0ExVUVBeE1jUjI5dloyeGxJRWx1ZEdWeWJtVjBJRUYxZEdodmNtbDBlU0JITWpDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSndxQkhkYzJGQ1JPZ2FqZ3VEWVVFaThpVC94R1hBYWlFWis0SS9GOFluT0llNWEvbUVOdHpKRWlhQjBDMU5QVmFUT2dtS1Y3dXRaWDhiaEJZQVN4RjZVUDd4YlNEajBVL2NrNXZ1UjZSWEV6L1JURGZSSy9KOVUzbjIrb0d0dmg4RFFVQjhvTUFOQTJnaHpVV3gvL3pvOHB6Y0dqcjFMRVFUcmZTVGU1dm44TVhIN2xOVmc4eTVLcjBMU3krckVhaHF5ekZQZEZVdUxIOGdaWVIvTm5hZytZeXVFTldsbGhNZ1p4VVlpK0ZPVnZ1T0FTaERHS3V5Nmx5QVJ4em1aRUFTZzhHRjZsU1dNVGxKMTRyYnRDTW9VL000aWFyTk96MFlEbDVjRGZzQ3gzbnV2UlRQUHVqNXh0OTcwSlNYQ0RUV0puWjM3RGhGNWlSNDN4YStPY21rQ0F3RUFBYU9CNXpDQjVEQWZCZ05WSFNNRUdEQVdnQlRBZXBob2pZbjdxd1ZrREJGOXFuMWx1TXJNVGpBZEJnTlZIUTRFRmdRVVN0MEdGaHU4OW1pMWR2V0J0cnRpR3JwYWdTOHdEZ1lEVlIwUEFRSC9CQVFEQWdFR01DNEdDQ3NHQVFVRkJ3RUJCQ0l3SURBZUJnZ3JCZ0VGQlFjd0FZWVNhSFIwY0RvdkwyY3VjM2x0WTJRdVkyOXRNQklHQTFVZEV3RUIvd1FJTUFZQkFmOENBUUF3TlFZRFZSMGZCQzR3TERBcW9DaWdKb1lrYUhSMGNEb3ZMMmN1YzNsdFkySXVZMjl0TDJOeWJITXZaM1JuYkc5aVlXd3VZM0pzTUJjR0ExVWRJQVFRTUE0d0RBWUtLd1lCQkFIV2VRSUZBVEFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBQ0U0RXA0Qi9FQlpEWGdLdDEwS0E5TENPMHE2ejZ4RjlrSVFZZmVlUUZmdEpmNmlaQlpHN2VzbldQRGNZQ1pxMng1SWdCelV6Q2VRb1kzSU50T0F5bkllWXhCdDJpV2ZCVUZpd0U2b1RHaHN5cGI3cUVaVk1TR05KNlpsZElEZk0vaXBwVVJhVlM2bmVTWUxBRUhEMExQUHN2Q1FrMEU2c3BkbGVIbTJTd2Flc1NEV0IrZVhrbkdWcHpZZWtRVkEvTGxlbGtWRVNXQTZNQ2FHc2VxUVNwU2Z6bWhDWGZWVURCdmRtV0Y5ZlpPR3JYVzJsT1VoMW1Fd3BXanFOMHl2S25GVUV2L1RtRk5XQXJDYnRGNG1tazJ4Y3BNeTQ4R2FPWk9OOW11SUFzMG5INUFxcTNWdUR4M0NRUms2KzBOdFpsbXd1OVJZMjNuSE1BY0lTd1NIR0ZnPT0iXX0.eyJub25jZSI6IlVFMTViamRaVUVNdk4ybFJNRU5UVTJwQ1VXdE1Rak51VEU1WWRtOXZabnBPUm14WkwzcEhibXRWV21oS1ZrSkJTa3R1S3pkWFJHbDBUVnBzYkZORFppOWFMMjlGZUVKa2NEVnllQzlwUTFWUlluVlVlV2M5UFE9PSIsInRpbWVzdGFtcE1zIjoxNDkwNzg3MTQ3MzYxLCJhcGtQYWNrYWdlTmFtZSI6ImNvbS5leGFtcGxlLnNhbXBsZSIsImFwa0RpZ2VzdFNoYTI1NiI6ImtXVWZ3ZlpCSU9ib2UzRGtMM2RkeTFBbm1VdjM3cDFVYlduZ1Fkd1gwZHM9IiwiY3RzUHJvZmlsZU1hdGNoIjp0cnVlLCJleHRlbnNpb24iOiJDUVlZdUQyUmRqQVkiLCJhcGtDZXJ0aWZpY2F0ZURpZ2VzdFNoYTI1NiI6WyJ3ZU93UTZLUWdFZGx2bXJIV0VCRDlyZm96YnF6ZWU0ZlpPT2FXclpoc2NvPSJdLCJiYXNpY0ludGVncml0eSI6dHJ1ZX0.JXOvgIx0PufdyJ72Vo-FvTb_6Dwj7gcSxlXWHt8siVrgK2eMQA3V_eYbXS7NYkNUEXLLMNIfm8qEIwJQGYLUKE9GyaHjjuFt_YOkQMOzC8hh9VpIekS8bc_eRfvVajXzrFSRAigOnfVBrMGrVVpxsqtjqz1Y9ochGHwrjO2b8oZyw06HjzsnuT9YpLXakBg1azOYx9KP-_XkDaKW6_Lkfn6Rmo8hpatadIF5qn54W_UkXvvsG7d4P8h_7uvO66rRhK1OXg3Qhazta3B_XFtiLcmusaqmglopEW1hI07FAvrqzemuY-_4EcvReLKfo84rl_BuJmLFVtQtDyAHtzngxw
Run Code Online (Sandbox Code Playgroud)

android api-key google-play-services android-security safetynet

9
推荐指数
1
解决办法
1500
查看次数

允许使用FLAG_SECURE截屏

使用FLAG_SECURE,不允许截屏。我希望我的应用程序能够捕获屏幕,但是当它进入背景时却可以模糊或隐藏。

你知道有什么办法吗?有可能用FLAG_SECURE做到吗?

我阅读了这个主题(Android:使用方法FLAG_SECURE后无法截图),但是没有人对此有任何有效答案。

使用FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS排除了该应用程序出现在最近的应用程序中,但不确定是否阻止android系统获取并存储状态屏幕截图。

任何建议谢谢

java security android kotlin android-security

9
推荐指数
1
解决办法
1813
查看次数

IP地址范围的网络安全配置?

在 Android P 中,默认情况下禁用明文通信。相反,有两种选择:

  • 需要在清单文件中明确声明允许明文通信
  • 或者需要声明允许通过网络安全配置进行明文通信的域。

我的问题与第二种方法有关。我可以在 network_security_config.xml 中将这样的特定 IP 地址列入白名单

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">192.168.1.1</domain>
    </domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

但是,我想将所有私有 IP 地址列入白名单。我有一些反复试验的案例,但我无法让它发挥作用。

本质上,是否提供了在网络安全配置中定义IP 地址范围的选项?

android android-security android-9.0-pie

9
推荐指数
1
解决办法
5074
查看次数

多个 Android 应用程序(同一设备)可以共享相同的密钥对以使用 FIDO 2 协议进行无密码身份验证吗?

问题陈述:

我想使用FIDO2协议(通过提供SDK)解决Android应用程序上的用户身份验证,而不需要为同一设备上的不同应用程序执行多个注册仪式。例如,如果用户已在 Android 应用程序 A 中注册(生成公私密钥对),则不应要求他/她在 Android 应用程序 B 中注册(假设应用程序 A 和应用程序 B 在同一设备上) 。

可能的解决方案是什么(据我所知):-

  1. 与应用程序 A 和 B 集成的通用 SDK 以提供身份验证。
  2. 单独的身份验证应用程序。

我想继续使用解决方案 1,因为解决方案 2 可能并不理想,因为它需要下载额外应用程序(身份验证应用程序)的额外步骤。

我现在能够实现什么: - 我们能够通过维护应用程序 A 和应用程序 B 的单独私钥来对应用程序 A 和应用程序 B 的用户进行无密码身份验证。

在此输入图像描述 在上图中:-

  1. 用户 XYZ 登录到应用程序 A 并向该设备上的应用程序 A 注册自己。
  2. 在注册步骤中,验证器生成公钥-私钥对。
  3. PrivateKey_1(PrivateKey) 被创建并存储在密钥库中,PublicKey_1(PublicKey) 被创建并与服务器共享。
  4. 现在假设用户 XYZ 想要登录应用程序 B。用户 XYZ 会重复相同的过程以将其注册到应用程序 B。
  5. 在此过程中,将创建 PrivateKey_2 并将其存储在密钥库中,并创建 PublicKey_2 并与服务器共享。
  6. 因此,在上述场景中,用户 XYZ 能够分别使用私钥 PrivateKey_1 和 PrivateKey_2 在 App A 和 App B 上进行身份验证。

我想知道以下场景的可行性? 我想对应用程序 A 和应用程序 …

authentication google-identity android-security webauthn fido

9
推荐指数
1
解决办法
1094
查看次数