Рекомендации по разработке защищенных приложений WebView2

Элемент управления WebView2 позволяет разработчикам размещать веб-содержимое в приложениях на родном языке. При правильном использовании для размещения веб-содержимого предусмотрено несколько преимуществ, например использование пользовательского интерфейса в Интернете, доступ к функциям, совместное использование кода и межплатформенной платформы, и т. д. Чтобы избежать уязвимостей, которые могут возникнуть при размещении веб-содержимого, не забудьте разработать приложение WebView2, чтобы точно отслеживать взаимодействие между веб-содержимым и ведущим приложением.

  1. Считать все веб-содержимое небезопасным.
    • Проверка веб-сообщений и параметров объекта хоста перед использованием каждого из них, поскольку веб-сообщения и параметры могут быть неправильно сформированы \ (непреднамеренно или злонамеренно) и привести к неожиданному поведению приложения.
    • Всегда проверяйте источник документа, который выполняется в WebView2, и оцените надежность содержимого.
  2. Разрабатывать конкретные веб-сообщения и взаимодействия объектов Host вместо обычных прокси.
  3. Задайте следующие параметры, чтобы ограничить функциональность веб-содержимого, изменив ICoreWebView2Settings (Win32) или CoreWebView2Settings (.NET).
    • AreHostObjectsAllowed false Если вы не предполагаете, что веб-контенту нужно получить доступ к объектам Host, установите значение на.
    • IsWebMessageEnabled false Если вы не ожидаете, что веб-содержимое будет отправлять веб-сообщения в собственное приложение, сделайте это.
    • IsScriptEnabled false Если вы не ожидаете, что веб-содержимое будет выполняться в сценариях (например, при отображении статического содержимого HTML).
    • AreDefaultScriptDialogsEnabled false Если вы не хотите, чтобы веб-содержимое отображалось alert или диалоговых окон не ожидалось, установите значение на prompt .
  4. Ниже приведены инструкции по NavigationStarting FrameNavigationStarting обновлению параметров на основе источника новой страницы с помощью событий и.
    1. Чтобы запретить приложению переходить на определенные страницы, используйте события, чтобы проверить, а затем заблокировать навигацию для страниц и фреймов.
    2. При переходе на новую страницу может потребоваться настроить значения свойств для ICoreWebView2Settings (Win32) или CoreWebView2Settings (.NET) , как описано выше.
  5. При переходе к новому документу используйте ContentLoading событие для удаления предоставленных объектов узла с помощью RemoveHostObjectFromScript .