Як усунути вразливість із внесенням фрагментів

Ця інформація призначена для розробників додатків, які використовують ненадійну версію класів PreferenceActivity, що є вразливими до внесення фрагментів. У цій версії шкідливі сторонні додатки можуть завантажувати фрагменти, які мають бути конфіденційними.

Основна інформація

З 1 березня 2017 року в Google Play не публікуються додатки й оновлення, у яких класи PreferenceActivity можуть бути вразливими до впровадження фрагментів. Ознайомтеся зі сповіщенням у Play ConsoleПісля кінцевих термінів, указаних у Play Console, додатки з уразливими елементами може бути видалено з Google Play.

Що потрібно зробити​

  1. Увійдіть в обліковий запис Play Console і перейдіть у розділ "Сповіщення", щоб переглянути, які додатки уражено та які терміни вирішення цих проблем.
  2. Оновіть уражені додатки й усуньте вразливі елементи.
  3. Надішліть оновлені версії цих додатків.

Коли ви надішлете оновлені версії, ми знову перевіримо їх. Це може тривати кілька годин. Якщо додаток пройде перевірку та його буде опубліковано, виконувати додаткові дії не потрібно. Якщо додаток не пройде перевірку, його нову версію не буде опубліковано й ви отримаєте відповідне сповіщення електронною поштою.

Додаткова інформація

Якщо можливо, укажіть у файлі Manifest значення exported=false для класу PreferenceActivity. Завдяки цьому сторонні додатки не зможуть надсилати класу наміри.

Якщо вразливий клас PreferenceActivity потрібно експортувати в сторонній додаток, визначте, чому він уразливий і вживіть належних заходів. Нижче вказано два варіанти.

  1. Неправильна версія методу isValidFragment

Перевірте, чи вразливий клас містить або успадковує версію методу isValidFragment, яка повертає значення "true" в усіх шляхах коду. Якщо так, оновіть клас і перевірте список дозволених класів фрагментів. Наприклад, якщо клас PreferenceActivity має дозволяти класи MyFragment і забороняти інші фрагменти, виконайте таку перевірку:

         public boolean isValidFragment(String fragmentName) {
            return MyFragment.class.getName().equals(fragmentName);

         }

  1. Значення targetSdkVersion менше ніж 19 і не застосовується метод isValidFragment

Якщо в маніфесті додатка значення targetSdkVersion менше ніж 19 і вразливий клас не містить жодної версії методу isValidFragment, уразливість успадковується з класу PreferenceActivity.

Щоб вирішити проблему, розробник має оновити targetSdkVersion до 19 або новішої версії. Якщо не вдається оновити targetSdkVersion, розробник має застосувати метод isValidFragment, як описано в пункті 1, щоб перевірити дозволені класи фрагментів.

Зауважте, що додатки також мають відповідати положенням Договору розробника про розповсюдження та Політики щодо вмісту

Ми завжди раді допомогти

Якщо у вас є інші технічні запитання про вразливості, опублікуйте їх на сайті Stack Overflow з тегом android-security. Щоб дізнатися більше про дії для вирішення цієї проблеми, зв’яжіться зі службою підтримки розробників.

false
Головне меню
7092787993272493478
true
Пошук у довідковому центрі
true
true
true
true
true
5016068
false
false