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"] );
Примеры расширений
© 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