应用程序易受意图重定向问题
App vulnerable to Intent Redirection issue
每当我将我的应用程序上传到 Play 商店时,我都会收到此应用程序 易受意图重定向 从 Google 发出消息。我收到这条消息 science 我已经从设备中集成了 pdf 文件选择代码。这是我的文件选择代码片段:
if(Permissions.checkPermissionStorage(CompanyProfileMediaUploadActivity.this)){
File file = new File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),brochure_nextkey+".pdf");
Uri pdfUri = FileProvider.getUriForFile(CompanyProfileMediaUploadActivity.this, "com.main.mccoymartbusiness.fileproviders", file);
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setDataAndType(pdfUri, "application/pdf");
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent, PICKFILE_RESULT_CODE);
}else{
Permissions.requestPermissionStorage(CompanyProfileMediaUploadActivity.this);
}
这是我的 onActivityResuly 代码
if (requestCode == PICKFILE_RESULT_CODE) {
getContentResolver().takePersistableUriPermission(
intent.getData(),
Intent.FLAG_GRANT_READ_URI_PERMISSION
);
InputStream iStream = null;
byte[] inputData = null;
try {
iStream = getContentResolver().openInputStream(intent.getData());
inputData = getBytes(iStream);
} catch (Exception e) {
e.printStackTrace();
}
uploadCompanyBrochureApi(brochure_nextkey,inputData);
}
在我的 OnActivityResult 中,我将文件转换为字节数组并从我的内部 api.
将其上传到服务器
尽管 Google 支持团队没有提到导致此问题的任何特定代码行或 class,但我在集成此代码后经常遇到此易受攻击的问题。
这是我从 google 收到的警告:
[![在此处输入图片描述][1]][1]
如果有任何解决方案,请告诉我。提前致谢。
[1]: https://i.stack.imgur.com/If0Mq.png
终于找到了这个问题的解决方案。我发现我在 libs 文件夹中使用 Cashfree SDK 和 YouTubeAndroidPlayerApi.jar。我已经从 libs 文件夹中删除了这些并在我的 gradles 中更新了这些行:
implementation 'com.github.davidmigloz:youtube-android-player-api-gradle:1.2.2.1'
implementation 'com.cashfree.pg:android-sdk:1.6.1'
maven { url 'https://maven.cashfree.com/release'
并且还更新了 Facebook sdk 版本。
对于隐式和显式 Intent 重定向,我还更新了我的代码并添加了 if(intent.resolveActivity(getPackageManager()) != null)
和 if (name.getPackageName().equals(name.getPackageName())&&name.getClassName().equals(name.getClassName()))
检查。
谢谢。
每当我将我的应用程序上传到 Play 商店时,我都会收到此应用程序 易受意图重定向 从 Google 发出消息。我收到这条消息 science 我已经从设备中集成了 pdf 文件选择代码。这是我的文件选择代码片段:
if(Permissions.checkPermissionStorage(CompanyProfileMediaUploadActivity.this)){
File file = new File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),brochure_nextkey+".pdf");
Uri pdfUri = FileProvider.getUriForFile(CompanyProfileMediaUploadActivity.this, "com.main.mccoymartbusiness.fileproviders", file);
intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setDataAndType(pdfUri, "application/pdf");
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(intent, PICKFILE_RESULT_CODE);
}else{
Permissions.requestPermissionStorage(CompanyProfileMediaUploadActivity.this);
}
这是我的 onActivityResuly 代码
if (requestCode == PICKFILE_RESULT_CODE) {
getContentResolver().takePersistableUriPermission(
intent.getData(),
Intent.FLAG_GRANT_READ_URI_PERMISSION
);
InputStream iStream = null;
byte[] inputData = null;
try {
iStream = getContentResolver().openInputStream(intent.getData());
inputData = getBytes(iStream);
} catch (Exception e) {
e.printStackTrace();
}
uploadCompanyBrochureApi(brochure_nextkey,inputData);
}
在我的 OnActivityResult 中,我将文件转换为字节数组并从我的内部 api.
将其上传到服务器尽管 Google 支持团队没有提到导致此问题的任何特定代码行或 class,但我在集成此代码后经常遇到此易受攻击的问题。
这是我从 google 收到的警告:
[![在此处输入图片描述][1]][1]
如果有任何解决方案,请告诉我。提前致谢。 [1]: https://i.stack.imgur.com/If0Mq.png
终于找到了这个问题的解决方案。我发现我在 libs 文件夹中使用 Cashfree SDK 和 YouTubeAndroidPlayerApi.jar。我已经从 libs 文件夹中删除了这些并在我的 gradles 中更新了这些行:
implementation 'com.github.davidmigloz:youtube-android-player-api-gradle:1.2.2.1'
implementation 'com.cashfree.pg:android-sdk:1.6.1'
maven { url 'https://maven.cashfree.com/release'
并且还更新了 Facebook sdk 版本。
对于隐式和显式 Intent 重定向,我还更新了我的代码并添加了 if(intent.resolveActivity(getPackageManager()) != null)
和 if (name.getPackageName().equals(name.getPackageName())&&name.getClassName().equals(name.getClassName()))
检查。
谢谢。