标签: android-security

接口X509TrustManager的不安全实施 - Google Play服务

首先,我应该说,我主要是一名PHP开发人员.我在Google Play上有一个相对老旧的应用程序,该应用程序是在2012年底针对API 15构建的.

在此处查看了其他与Google Play界面X509TrustManager警报的不安全实施相关的问题,但似乎没有一个适用于我.我不是通过SSL提出请求,也不是在Google Play服务之外使用任何外部库.

警报说问题是apache.http.具体来说它说:

您的应用程序正在使用与Apache HTTP客户端的X509TrustManager接口的不安全实现,从而导致安全漏洞.有关详细信息,请参阅此Google帮助中心文章,其中包括修复漏洞的截止日期.

由于我没有使用SSL连接,我不知道如何继续.事实上我没有使用SSL来解决Google遇到的问题吗?我与服务器交换的数据实际上不能被视为敏感 - 丢失并找到宠物列表.

该应用程序所涉及的网站是自愿的,自筹资金的,并且在共享主机上,因此添加SSL是我不希望在此时被强制使用的内容.实施SSL是我唯一的前进方向吗?

android android-security trustmanager

5
推荐指数
1
解决办法
2056
查看次数

在Android应用中存储密钥的最佳位置是什么?

在应用程序代码中存储API密钥,数据库加密密钥等的最佳位置是什么,以便没有人可以通过反编译来获取它?我使用proguard来混淆代码,但它不适用于字符串.

android android-security

5
推荐指数
1
解决办法
1713
查看次数

Android指纹在一段时间内只允许5次尝试

我正在开发一个需要指纹才能打开活动的Android应用程序.我刚注意到,当我使用指纹解锁手机时,在我的应用程序中扫描指纹的次数仅为4.

例如:

  • 电话已解锁

  • 使用指纹解锁手机

  • 打开我的指纹应用

  • 无法尝试扫描指纹超过4次

另一种情况:

  • 指纹应用程序是开放的

  • 只接受5次尝试,app将不再尝试扫描指纹

  • 等待一段时间,再次,只接受一次持续时间内的5次尝试

这有解决方法吗?

encryption android fingerprint android-security android-fingerprint-api

5
推荐指数
1
解决办法
2853
查看次数

android如何在源代码中隐藏或保护网址链接

我在应用程序中使用url链接从服务器发送和接收数据。如果有人反编译我的apk文件并获取源代码,则可以使用url发送垃圾邮件或进行一些无偿购买!

现在如何保护网址链接?

这是对我使用的服务器的请求示例。(我仍然使用本地服务器,直到完成应用程序为止)

public class GetProduct {

    ArrayList<Product> arrayList;
    ProgressDialog progressDialog;
    String url = "http://192.168.43.46/fasabazar/android/getProductsFullInfo";
    OnProductRecieved onProductRecieved = null;

    public GetProduct(final OnProductRecieved onProductRecieved, final Context context) {
        arrayList = new ArrayList<>();
        progressDialog = new ProgressDialog(context);
        this.onProductRecieved = onProductRecieved;
        JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
            @Override
            public void onResponse(JSONArray response) {

                JSONArray jsonArray = (JSONArray) response;
                progressDialog.dismiss();
                onProductRecieved.OnRecieved(response);
                // Toast.makeText(context, jsonArray.toString(), Toast.LENGTH_SHORT).show();

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });

        progressDialog.show();
        request.setRetryPolicy(new …
Run Code Online (Sandbox Code Playgroud)

security url android android-volley android-security

5
推荐指数
1
解决办法
789
查看次数

读取/写入Android中根文件夹的权限


如果我希望应用程序能够扫描整个“/”文件夹
.txt例如递归搜索所有文件),我可以/必须在我的应用程序中声明任何权限吗?

无论我尝试什么权限,我都得到了null到目前为止(调用时File.listFiles
。我想我错过了一些东西。

java android android-permissions android-security

5
推荐指数
1
解决办法
2410
查看次数

如何在 Android 9(pie)中找到用户的默认生物特征偏好

我现在正在开发的应用程序仅支持指纹身份验证,但在android 9(pie) 中,要求用户为其所有应用程序选择默认的生物识别首选项。因此,如果用户选择 face_id 作为默认身份验证首选项,则他将无法登录应用程序。所以我只需要一种方法来弄清楚用户的默认生物识别偏好是什么,这样如果用户选择了其他生物识别偏好而不是指纹,我可以在应用程序启动时弹出一个对话框并要求用户更改其偏好。

我正在使用新的BiometricPrompt API,但找不到任何提供用户默认选择的生物识别首选项的类或包。

android android-studio android-security android-9.0-pie

5
推荐指数
0
解决办法
566
查看次数

Apksigner 不验证签名

我试图用 apksigner 验证最新的 Gmail 应用程序(版本 8.11.25.224)的签名,但失败了。

我用了:

apksigner verifiy --verbose --print-certs <apk.file>

结果是:

DOES NOT VERIFY
ERROR: APK Signature Scheme v2 signer #1 Malformed additional attribute #1
Run Code Online (Sandbox Code Playgroud)

我正在寻找为什么会发生这种情况的解释,但我找不到任何解决此问题的方法。我已经进行了一些实验,如果您添加--min-sdk-version 28到 apksigner 命令的选项中,那么结果是:

Verified using v1 scheme (JAR signing): false
Verified using v2 scheme (APK Signature Scheme v2): false
Number of signers: 1
Signer #1 certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Signer #1 certificate SHA-256 digest: f0fd...
Signer #1 certificate SHA-1 digest: 3891...
Signer #1 certificate …
Run Code Online (Sandbox Code Playgroud)

android apk android-security apksigner

5
推荐指数
2
解决办法
7020
查看次数

Android Q 上“android:useEmbeddedDex”的目的

从这里 ( https://developer.android.com/preview/features#embedded-dex ),您可以看到 Android 引入了一项新功能,允许使用嵌入式 dex 直接从 APK 中运行代码。

我很好奇这会有什么用?

指南说:

This option can help prevent an attack if an attacker ever managed to 
tamper with the locally compiled code on the device."
Run Code Online (Sandbox Code Playgroud)

我的理解是,当您的 APK 安装时,它会被编译并作为优化的 dex 文件存储在 dalvik 缓存中。dalvik 缓存只能由系统用户访问,因此除非手机已 root,否则攻击者无法访问它。

如果手机是 root 的(并且攻击者以 root 身份运行),那么嵌入的 dex 文件仍然可以被篡改,因为攻击者可以修改 apk 并使用他们自己的密钥重新签名。

谢谢!

security android android-security

5
推荐指数
1
解决办法
775
查看次数

Android:如何为 Android 应用程序使用 GCP 服务帐户

我在我的应用程序中使用 Google 路线 API。最近,我收到了来自 Google 的关于 API 密钥的警告说:

Your app contains exposed Google Cloud Platform (GCP) API keys

这是因为方向 API 需要身份验证密钥(我在 strings.xml 文件中有该密钥,并从那里附加它)。在控制台上,已经添加了应用程序的包名称和 SHA1,同时限制了 API。我阅读了有关设置 GCP 服务帐户的信息,但不知道如何使用它。根据文档,我们应该设置环境变量并通过它提供凭据。这是否意味着我必须将生成的 json 文件存储在我的应用程序中并从那里获取凭据(如文档中所述)。如果没有,那么移动应用程序的最佳方法应该是什么。

更新:生成的 google-services.json 本身有 api 密钥。

android android-security

5
推荐指数
1
解决办法
1791
查看次数

Google Play 意图重定向问题

所以我只是尝试在 Play 商店更新一个长期存在的 Unity 构建的游戏,但收到了来自谷歌的拒绝邮件,如下所示:

意图重定向 - 您的应用程序容易受到意图重定向的影响。

他们提供了一个包含 3 个单独补救措施的链接

TBH, 我在这里理解的唯一选项是 no.1 ( change androidexported to false on the manifest) 但看着这个似乎 Google Play 服务需要这个才能登录。

我在下面的清单中包含了我认为有问题的代码行。

此外,来自谷歌的邮件说我应该在开发者控制台的“警报”中找到更多信息,但那里没有消息。

我不是特别技术,所以非常感谢任何帮助。

 <service
                android:name="com.google.android.gms.auth.api.signin.RevocationBoundService"
                android:exported="true"
                android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION" />
Run Code Online (Sandbox Code Playgroud)

google-play android-security

5
推荐指数
0
解决办法
459
查看次数