Контрольный список лучших практик для обеспечения безопасности Android WebView

Я работаю над приложением, которое в основном написано на родном языке и поддерживает Ice Cream Sandwich. Однако мне нужно добавить несколько WebView. Существует много дискуссий о безопасности WebView, и когда я использую setJavaScriptEnabled(true), он выдает мне предупреждение: «Использование setJavaScriptEnabled может привести к XSS-уязвимостям в вашем приложении, внимательно изучите».

Просто хочу быть очень осторожным, используя WebView и setJavaScriptEnable(true). Я следовал советам по безопасности Android WebView и предложения. Но контрольного списка лучших практик нет.

Что я сделал до сих пор:

  1. Загружайте только доверенный контент в WebView. Либо из локального html, либо из нашей серверной части.
  2. Перехватывать все запросы от WebView, реализуя

    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // magic
            return true;
        }
    });
    
  3. Убедитесь, что все серверные запросы используют https и отправляются только на наш сервер.
  4. Предупреждение об обнаружении SSL.
  5. Контрольная сумма проверяет локальные файлы html/JavaScript.
  6. Минимизировать файлы JavaScript
  7. Обновить поставщика безопасности для защиты от эксплойтов SSL

Существуют также некоторые другие средства защиты, не предназначенные специально для WebView, такие как шифрование сообщений и проверка взломанного джейла и т. д.

Есть ли что-то еще, что мне не хватает? Насколько безопасно мое приложение?

Спасибо


person Steven    schedule 27.09.2016    source источник
comment
Продолжайте и закончите свое приложение и позаботьтесь об этом последнем :)   -  person Dionis L    schedule 28.09.2016
comment
Нам нужно убедиться, что это безопасно, прежде чем публиковать в магазине Google Play.   -  person Steven    schedule 28.09.2016
comment
Похоже, вы сделали все, что могли разумно сделать. Основные этапы №1 и №3.   -  person Antimony    schedule 04.10.2016
comment
Спасибо за ваш комментарий. Вы хотите дать ответ, и я могу проголосовать?   -  person Steven    schedule 05.10.2016


Ответы (1)


Согласно документу,

Чтобы включить безопасный просмотр для всех веб-представлений в вашем приложении, добавьте в тег манифеста:

<manifest>
     <meta-data android:name="android.webkit.WebView.EnableSafeBrowsing"
                android:value="true" />
      . . .
     <application> . . . </application> </manifest> 

Поскольку WebView распространяется в виде отдельного APK, Safe Browsing for WebView сегодня доступен для устройств под управлением Android 5.0 и более поздних версий. С помощью всего одной добавленной строки в манифесте вы можете сразу же обновить свое приложение и повысить безопасность для большинства своих пользователей.

person Android Developer    schedule 27.06.2017
comment
Разве для параметра EnableSafeBrowsing не установлено значение true по умолчанию? Хотя значение EnableSafeBrowsing по умолчанию равно true, в некоторых случаях вы можете захотеть включить безопасный просмотр только условно или отключить его. Android 8.0 (уровень API 26) и выше с поддержкой setSafeBrowsingEnabled() - person TSlegaitis; 12.03.2019
comment
Он находится внутри тега приложения, не так ли? - person Amg91; 17.03.2020