Autor Zpráva
kap
Profil *
Zabezpečuji formulář a zajímalo by mě následující:
Útočník má vlastní stránku na kterou v iframu vloží mojí stránku (jsou to rozdílné domény samozřejmě). Uživatele přiměje navštívit tu svojí stránku. Uživateli se načte útočníkova stránka a zároveň v iframu (třeba skrytém) moje stránka.
Dokáže útočník nějak zjistit obsah toho iframu? Např. ho nějak překopírovat javascriptem do té hlavní stránky a nechat to uživatele (nevědomky) odeslat?
Bubák
Profil
Něco je třebas tady: http://zdrojak.root.cz/clanky/prehled-utoku-na-webove-aplikace/
V závěru kapitoly Clickjacking (Click Hijacking) se píše:
Řešením je nedovolit vložení naší aplikace do iframe (pokud si to můžeme dovolit). K tomu postačí kontrola pomocí JavaScriptu.
kap
Profil *
"nedovolit vložení naší aplikace do iframe"
to by se hodilo a jak to v Javascriptu provedu?
Bubák
Profil
Třeba takto: http://teststranek.kvalitne.cz/ramy1/
Napadlo mě, že by bylo možné adresy patent rámů logovat. Též by bylo možné přidat časovač a v případě, že tvá stránka je v rámu, vypsat javascriptem výrazné upozornění, že běží z nedůvěryhodné adresy.
joe
Profil
kap
Nevymýšlej blbosti, pokud někdo chce, tak to stejně obejde, i ten javascript, na který odkazuje Bubák.

Co mě napadá, dej si do formuláře skrytý input, například s názvem verify a ulož do něj hash referera s nějakým saltem, to by mohlo fungovat, pokud mi to dobře myslí :)
Bubák
Profil
ulož do něj hash referera
A co, když referrer nebude? Co když bude vyplý JS?
joe
Profil
Bubák
Jistě, taková možnost může nastat, ale to útočník nemůže vědět, může se k tomu ještě přidat něco ze session, aby bylo jasné, že to není podvržené.
A když bude vypnutý js, pak snad není problém stáhnout zdroj stránky, rozparsovat, vyplnit hodnoty pole a odeslat na nějaké url nebo snad nějaký problém je, o kterém nevím?
vynalezce
Profil
kdyz bude mit vyplej js tak je vsechno v pohode (kdyz ten form de jako post) bez js ten post neodesles
(opravte me jestli se pletu)
joe
Profil
vynalezce
Určitě jdou odeslat POSTem data z PHP. Jde to nějak přes cURL nebo třeba bez něj tady.

EDIT: pořád si ale myslím, že moje řešení s hashem je daleko bezpečnější než jen s JS. Vlastně je to docela dobrý nápad a asi to aplikuju všude kde mám formuláře :-)
Bubák
Profil
joe
Něco mi uniká, jak získáš ve formuláři hash bez JS?
joe
Profil
Bubák
Zkusim vysvětlit princip jak jsem to myslel.

Jsou dvě strany útočník (U) a web (W), z kterého se vypisuje formulář. Při vypisování formuláře z W vložím do formuláře input s verify kódem, který bude hash(referer + "cokoli")

Pokud U načte zdroj kódu a rozparsuje, pak bude mít nějaký hash u inputu verify, ale neví z čeho je vytvořený. Pokud ho neodešle, pak data můžeme zahodit, jedná se určitě o podvrh. Pokud tam je, tak ho porovná s hash(referer + "cokoli"). Pokud se shodují, pak data přijmu.

Problém může v tomto případě nastat, jen pokud bude původní referer a referer, který odesílá U prázdný, takže nějaké riziko je. Ale i to by se možná dalo nějakým způsobem odstranit. Session jak jsem psal je blbost. Možná se tím zkusím zabývat po zkouškovém.

EDIT: proč bych ho měl získávat v JS?
EDIT2: předpokládám, že formulář není na nějaké první stránce a v refereru bude adresa webu, kde je někde formulář umístěn
Bubák
Profil
v refereru bude adresa webu
Nemusí! Referrer jde v některých prohlížečích vypnout, falšovat, může ho blokovat proxina. Na stránku s formulářem se můžu dostat z vyhledávače, ze záložky, z historie, z uložených panelů...
joe
Profil
Bubák
vím, proto jsem napsal EDIT2, abych to upřesnil.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

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