Autor Zpráva
kabanos
Profil *
Ahoj,
lze nějak kontrolovat, zda je otevíraná stránka otevřená v iframe jiné stránky (na stejné doméně) - něco jako kontrola if !top.window tak přesměruj na top stránku a do jejího iframe načti otvíranou? Chci to hlavně z důvody, kdy mi ji najde nějaký vyhledávač a z něj ji pak otevřu. Iframe na těchto stránkách používám proto, že potřebuji mít stále přístupná některá data (javascript proměnné, texty zapsané uživatelem do textareí atp.).

Dík
motik
Profil
kabanos:
zkus php: načíst a zpracovat url adresu
Chamurappi
Profil
Reaguji na kabanose:
Viz Tohle nechci v rámech od Bubáka.


Reaguji na motika:
Těžko. Server není žádným způsobem informován, jestli se stránka otevírá v rámu.
motik
Profil
Chamurappi:
myslel jsem, že toto by mohlo fungovat: (do vkládané stánky dát)
if ($_SERVER['HTTP_REFERER']  != 'http://example.com/index.html') ... 
ShiraNai7
Profil
motik:
Na referer nespolehat! Spustu prohlizecu ho neposila (kvuli nejakym pluginum ci bezpecnostnimu sw).
motik
Profil
ShiraNai7:
já to odzkoušel v IE, Mozille i GoogleChrome a jelo to.. ale máš pravdu, že to asi nebude moc spolehlivé.. dík za info - dám si pozor!
Chamurappi
Profil
Reaguji na motika:
Tvá podmínka vůbec nerozlišuje, jestli je stránka otevřená v rámu, nebo jestli na ni bylo jen obyčejně odkázáno. I když je pravda, že by tím mohl rozeznat už na straně serveru část příchozích z vyhledávačů.


Reaguji na ShiraNaiho7:
Na referer nespolehat! Spustu prohlizecu ho neposila
Na nic se nemůže spoléhat stoprocentně, ale v rámci domény bývá Referer povolený skoro vždy, možná i častěji, než je povolený JavaScript.


Reaguji na kabanose:
Ještě mě napadlo, že můžeš otestovat existenci objektu window.frameElement.
motik
Profil
Chamurappi:
Tvá podmínka vůbec nerozlišuje, jestli je stránka otevřená v rámu, nebo jestli na ni bylo jen obyčejně odkázáno.

když se
$_SERVER['HTTP_REFERER']
a adresa "hlavní stránky" nerovnají, tak je otevřený jen ten rám - tudíž by mělo stačit jen přesměrovat - příp. odkázat.
Bubák
Profil
motik:
když se
$_SERVER['HTTP_REFERER']

a adresa "hlavní stránky" nerovnají
tak je nejpravděpodobnější, že návštěvník přišel z vyhledávače nebo z externího odkazu, a ty bys takovou návštěvu přesměroval do někam.
Chamurappi
Profil
Reaguji na Bubáka:
Myslím, že o to kabanosovi jde. Také jsem si zpočátku myslel, že jde o klasický dotaz hledající obranu proti načítání do rámu, ale tazatel chce zabránit naopak nenačtení do (svého) rámu.
motik
Profil
Chamurappi:
já jsem to teda tak pochopil..

Bubák:
a ty bys takovou návštěvu přesměroval do někam.
né do někam, ale na ten jeho hlavní rám
Witiko
Profil
Možná jsem naivní, nikdy jsem takovýto problém neřešil, ale nestačila by jednoduchá kontrola:

window.parent == window.self
případně
window.top == window.self

I v případě rozdílních domén a tedy odmítnutí přístupu k nadřazenému window dokumentu se undefined nebude rovnat objektu window aktuálního dokumentu. Pokud to tedy nechce op kabanos v serverovém jazyce, jak by podbízely předchozí posty, přičemž je pak ale téma chybně zařazeno. :)

Ohledně případu od Bubáka: Mám takový pocit, že v případě rozdílných domén nebude window.top z bezpečnostních navracet kýčený window objekt. A změna adresy bude tímto znemožněna.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0