CSP frame-ancestors dovoľuje vložiť stránku do rámca cudzím webom
Čo to je
Váš web posiela direktívu frame-ancestors vo vynucovanej hlavičke Content-Security-Policy, ale je nastavená tak voľne, že vaše stránky môžu do <iframe> vložiť aj iné weby. Zvyčajne za tým stojí zástupný znak, napríklad frame-ancestors * alebo https:.
Prečo tu X-Frame-Options nepomôže
Prehliadače, ktoré frame-ancestors poznajú, sa riadia ňou a hlavičku X-Frame-Options vôbec nečítajú. Platí to bez ohľadu na to, či váš web X-Frame-Options posiela. Pridať popri tejto direktíve X-Frame-Options: SAMEORIGIN preto nič nezmení; sprísniť treba samotnú direktívu.
Ako to opraviť
Voľnú hodnotu nahraďte najužšou, s ktorou váš web vystačí:
Content-Security-Policy: frame-ancestors 'none';
# alebo, ak vkladáte vlastné stránky:
Content-Security-Policy: frame-ancestors 'self';
# alebo s allowlistom webov, ktorým dôverujete:
Content-Security-Policy: frame-ancestors 'self' https://partner.example.cz;Ak chcete pokryť aj staršie prehliadače bez podpory frame-ancestors, môžete popri nej naďalej posielať X-Frame-Options s rovnakým významom. Moderné prehliadače sa riadia direktívou.
Overenie
Stránku znova načítajte a pozrite sa na hlavičky odpovede vo vývojárskych nástrojoch prehliadača, alebo spustite nový sken. Nález zmizne, keď frame-ancestors nebude povoľovať weby, ktoré nekontrolujete.