CentralCSP
Reporting APITypes de rapports

Report COOP

Le report coop se déclenche quand Cross-Origin-Opener-Policy isole une fenêtre ou quand un script cross-origin tente de franchir la frontière.

Dernière mise à jour:

Un report coop vous indique que Cross-Origin-Opener-Policy (COOP) est intervenue : soit une navigation a changé de browsing context group, soit, en mode report-only, un script cross-origin a tenté d'accéder à une propriété au-delà de la frontière COOP. C'est ainsi que vous mesurez l'impact de l'activation de COOP, et que vous repérez les accès inter-fenêtres inattendus.

Expérimental

Le reporting COOP est encore en cours de standardisation, et les noms des champs du body varient entre l'explainer, la spec et Chromium. Considérez le payload ci-dessous comme indicatif et vérifiez-le sur une capture réelle.

Quand le navigateur l'envoie

COOP émet deux familles de report. Les navigation reports se déclenchent quand une navigation provoque un changement de browsing context group (l'isolation que COOP existe pour appliquer). Les access reports, qui sont report-only, se déclenchent quand un script cross-origin tente de lire une propriété au-delà de la frontière COOP, c'est-à-dire l'accès inter-fenêtres que COOP bloque. Utilisez le header Cross-Origin-Opener-Policy-Report-Only pour observer les deux sans isoler réellement.

Exemple de payload

{
  "type": "coop",
  "age": 9,
  "url": "https://api-next.centralcsp.com/",
  "user_agent": "Mozilla/5.0 ...",
  "body": {
    "disposition": "enforce",
    "effectivePolicy": "same-origin",
    "nextResponseURL": "https://attacker.example/",
    "referrer": "https://api-next.centralcsp.com/",
    "type": "navigation-from-response"
  }
}

Chaque body de report coop porte ces champs à l'intérieur de l'enveloppe de report partagée.

Référence des champs

ChampSignification
dispositionenforce, ou report pour un access report en report-only.
effectivePolicyLa valeur COOP en vigueur, par exemple same-origin.
previousResponseURL / nextResponseURLLes documents de chaque côté d'un navigation report (assainis).
referrerLe referrer de la navigation.
property(Access reports) la propriété que le script cross-origin a tenté de lire.
openerURL / openeeURL / otherDocumentURL(Access reports) l'autre document impliqué (assaini).
sourceFile, lineNumber, columnNumber(Access reports) l'origine de l'accès.
typeLe marqueur de variante (une variante navigation ou access).

Comment le recevoir

Ajoutez un paramètre report-to="..." au header COOP (ou à sa variante Report-Only) et déclarez cet endpoint dans Reporting-Endpoints. CentralCSP collecte le flux coop.

Reporting-Endpoints: coop-endpoint="https://<Endpoint-ID>.report.centralcsp.com"
Cross-Origin-Opener-Policy-Report-Only: same-origin; report-to="coop-endpoint"

Ce qu'il vous apprend sur la sécurité

Les navigation reports montrent où l'activation de l'isolation changerait le comportement des liens et des popups, c'est-à-dire les casses à corriger avant d'appliquer la politique. Les access reports sont le signal de sécurité : ils révèlent les scripts cross-origin qui sondent votre fenêtre, exactement la fuite inter-fenêtres que COOP existe pour empêcher.

Pièges

La forme exacte du body de premier niveau et la clé du marqueur de variante ne sont pas figées entre les sources. Capturez un report réel avant de documenter les noms de champs comme définitifs.

Prise en charge par les navigateurs

Les valeurs COOP de base sont standard et largement prises en charge, mais le reporting COOP est propre à Chromium : les reports sont livrés via le paramètre report-to du header, et Firefox et Safari ne les envoient pas. La valeur restrict-properties est également portée par Chromium.

Voir aussi

Sources

On this page