Spec-Zone.ru › Web Extensions

webRequest.getSecurityInfo()

Используйте эту функцию, чтобы получить подробную информацию о подключении TLS, связанном с определённым запросом.

Вы передаёте этой функции requestId для запроса, о котором идёт речь, а также некоторые дополнительные параметры. Она возвращает Promise, который разрешится в объект SecurityInfo.

Вы можете вызвать эту функцию только внутри обработчика webRequest.onHeadersReceived. requestId можно найти в объекте details, который передаётся в обработчик.

Вы также должны передать параметр "blocking" в webRequest.onHeadersReceived.addListener(). Поэтому для использования этого API вам необходимо иметь разрешение "webRequestBlocking" API-разрешение, а также обычные разрешения, необходимые для использования обработчиков webRequest (разрешение "webRequest" и разрешение на хост для хоста).

Синтаксис

let gettingInfo = browser.webRequest.getSecurityInfo(
  requestId,       // string
  options          // object
)

Параметры

requestId

string. ID запроса, для которого требуется информация о безопасности. Вы можете получить его из объекта details, передаваемого в любые обработчики событий webRequest.

options

object. Объект, который может содержать следующие свойства (все необязательные):

certificateChain Необязательно

boolean. Если true, возвращаемый объект SecurityInfo будет включать всю цепочку сертификатов до и включая корневой сертификат доверенной стороны. Если false, он будет включать только серверный сертификат. По умолчанию false.

rawDER Необязательно

boolean. Если true, каждый CertificateInfo в свойстве SecurityInfo.certificates будет содержать свойство rawDER. Оно содержит закодированные в DER данные ASN.1, составляющие данные сертификата.

Возвращаемое значение

A Promise, который разрешается в объект SecurityInfo.

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet
getSecurityInfo
НетСм. ошибку 628819.
Нет 62 ? Нет Нет ? ? 62 ? Нет ?

Примеры

В этом примере отслеживаются все запросы HTTPS к "mozilla.org" или его поддоменам, и выводится имя субъекта в сертификате сервера:

async function logSubject(details) {
  try {
    let securityInfo = await browser.webRequest.getSecurityInfo(details.requestId, {});
    console.log(details.url);
    if (securityInfo.state === "secure" || securityInfo.state === "weak") {
      console.log(securityInfo.certificates[0].subject);
    }
  }
  catch (error) {
    console.error(error);
  }
}

browser.webRequest.onHeadersReceived.addListener(logSubject,
  {urls: ["https://*.mozilla.org/*"]},
  ["blocking"]
);

В этом примере отслеживаются все запросы HTTPS к "mozilla.org" или его поддоменам, и выводится имя в корневом сертификате доверенной стороны:

async function logRoot(details) {
  try {
    let securityInfo = await browser.webRequest.getSecurityInfo(
      details.requestId,
      {"certificateChain": true}
    );
    console.log(details.url);
    if (securityInfo.state === "secure" || securityInfo.state === "weak") {
      console.log(securityInfo.certificates[securityInfo.certificates.length - 1].issuer);
    }
  }
  catch (error) {
    console.error(error);
  }
}

browser.webRequest.onHeadersReceived.addListener(logRoot,
  {urls: ["https://*.mozilla.org/*"]},
  ["blocking"]
);

Примеры расширений

  • root-cert-stats

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/getSecurityInfo

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API