Schopnost iframe detekovat vložení do stránky

Hamparle

  • ***
  • 122
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Schopnost iframe detekovat vložení do stránky
« kdy: 13. 10. 2020, 18:13:06 »
Když si otevřu iframe https://player.vimeo.com/video/číslo, tak se mi ukáže "Sorry
Because of its privacy settings, this video cannot be played here."
Na stránce, kde je iframe vloženo (ve zdrojáku html rovnou
Kód: [Vybrat]
<iframe class="avideo-iframe vimeo" id="player" data-video="123123" src="https://player.vimeo.com/video/123123" width="800px" height="480px" allowfullscreen allow=autoplay></iframe> se přehraje v pořádku? (Zkusil jsem naivně data:text/html,{obsah řádku výše} se stejnou hláškou)
Jakým způsobem nasimulovat, aby iframe fungoval korektně, rovnou přímo při otevření samotného iframe? Jaká api využívá (něco jako window.top, document.frames)?
Existuje nějaký bookmarklet, který "připraví" prostředí pro iframe tak, aby tyto ochrany byly neutralizovány?
« Poslední změna: 13. 10. 2020, 18:16:16 od Hamparle »


AoK

  • ***
  • 160
    • Zobrazit profil
Re:Schopnost iframe detekovat vložení do stránky
« Odpověď #1 kdy: 13. 10. 2020, 19:35:06 »
tohle se řídí hlavičkou X-Frame-Options, mrkni třeba na https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options

Hamparle

  • ***
  • 122
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Schopnost iframe detekovat vložení do stránky
« Odpověď #2 kdy: 13. 10. 2020, 20:04:57 »
Předpokládám, že mám hledat x-frame-option u toho iframu. tam jsem tento tak nenašel
I kdyby to tak bylo,  jaktože dojde k zobrazení textu a né nějaké chyby v konzoli? Když je to dle mdn. featura prohlížeče?

Re:Schopnost iframe detekovat vložení do stránky
« Odpověď #3 kdy: 14. 10. 2020, 10:33:23 »
Pokud to vlastník iframu (videa) nepovolí, tak prostě iframe nevložíš... Tečka.

Re:Schopnost iframe detekovat vložení do stránky
« Odpověď #4 kdy: 14. 10. 2020, 18:14:08 »
Předpokládám, že mám hledat x-frame-option u toho iframu. tam jsem tento tak nenašel
I kdyby to tak bylo,  jaktože dojde k zobrazení textu a né nějaké chyby v konzoli? Když je to dle mdn. featura prohlížeče?
Taky ho tam nemá, ale mají CSP, Ale tam frame=ancestor není nastavený.
Tipnul bych si (ale nedovedu to zreplikovat, mě to embednout iframe dovoluje i přímo přehrát) že je to zablokované podle Referera na serveru.



Re:Schopnost iframe detekovat vložení do stránky
« Odpověď #5 kdy: 15. 10. 2020, 01:19:58 »
JS:
Kód: [Vybrat]
let i_am_in_iframe = window.self !== window.top;
Tohle funguje (i když na některých horších prohlížečích bude potřeba ošetřit nějakou tu výjimku). Pokud se subdoména rodiče a vkládané stránky liší (jako např. v tom vimeo příkladě), bude window.top == null (nějaké bezpečnostní důvody), ale nerovnost bude dál platit.