Cum să remediați vulnerabilitatea privind Injectarea fragmentelor

Aceste informații sunt destinate dezvoltatorilor de aplicații care folosesc o implementare nesigură a claselor PreferenceActivity, care le fac vulnerabile la Injectarea fragmentelor. O astfel de implementare poate permite unei aplicații externe rău-intenționate să încarce Fragmente care ar trebui să fie private.

Ce se întâmplă

Începând din 1 martie 2017, Google Play Google Play a început să blocheze publicarea aplicațiilor noi și a actualizărilor în care clasele PreferenceActivity pot fi vulnerabile la Injectarea fragmentelor. Consultați notificarea din Play ConsoleDupă termenele limită afișate în Play Console, toate aplicațiile care conțin vulnerabilități de securitate neremediate pot fi eliminate din Google Play.

Acțiune necesară

  1. Conectați-vă la Play Console și navigați la secțiunea Alerte ca să vedeți ce aplicații sunt afectate și care sunt termenele limită pentru remedierea problemelor.
  2. Actualizați aplicațiile afectate și remediați vulnerabilitatea.
  3. Trimiteți versiunile actualizate ale aplicațiilor afectate.

După retrimiterea solicitării, aplicația dvs. va fi examinată din nou. Procesul poate dura câteva ore. Dacă aplicația trece de etapa de examinare și este publicată, nu mai este necesară nicio acțiune din partea dvs. Dacă aplicația nu trece de examinare, noua versiune a aplicației nu va fi publicată și veți primi o notificare prin e-mail.

Detalii suplimentare

Unde este posibil, setați valoarea „exported=false” pentru clasa PreferenceActivity în Manifest. Astfel, aplicațiile externe nu vor putea trimite Intents către această clasă.

Dacă clasa PreferenceActivity vulnerabilă trebuie exportată către aplicații externe, aflați de ce este vulnerabilă clasa respectivă și luați măsurile adecvate. Există două posibilități.

  1. Implementarea incorectă a metodei isValidFragment:

Verificați dacă clasa vulnerabilă conține sau moștenește o implementare a metodei isValidFragment care returnează valoarea „true” pentru toate căile de cod. Dacă valoarea returnată este „true”, actualizați clasa ca să caute o listă de clase Fragment permise. De exemplu: dacă clasa PreferenceActivity trebuie să permită clasele MyFragment și nicio altă clasă Fragment, implementați o verificare de genul:

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

         }

  1. Valoarea pentru targetSdkVersion este mai mică de 19 și nu implementează isValidFragment:

Dacă în prezent aplicația își setează în manifest o valoare mai mică de 19 pentru targetSdkVersion, iar clasa vulnerabilă nu conține nicio implementare a metodei isValidFragment, vulnerabilitatea este moștenită de la PreferenceActivity.

Pentru a remedia problema, dezvoltatorii trebuie să actualizeze targetSdkVersion la valoarea 19 sau mai mare. Sau, dacă valoarea pentru targetSdkVersion nu poate fi actualizată, dezvoltatorii trebuie să implementeze metoda isValidFragment așa cum este descris la punctul 1) pentru a căuta clasele Fragment permise.

Rețineți că aplicațiile trebuie să respecte Acordul de distribuire pentru dezvoltatori și Politica de conținut

Vă stăm la dispoziție pentru ajutor

Dacă aveți întrebări tehnice cu privire la vulnerabilitate, puteți posta pe Stack Overflow, cu eticheta „android-security”. Pentru clarificarea pașilor necesari pentru remedierea acestei probleme, contactați echipa de asistență pentru dezvoltatori.

false
Meniu principal
5394856763289649649
true
Căutaţi în Centrul de ajutor
true
true
true
true
true
5016068
false
false