Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 14:49 Der er 26 kommentarer og
2 løsninger

CrossSite scripting

Jeg har 2 frames som ligger på hvert sit domæne. Jeg vil gerne have at de kan kalde JavaScript's hos hinanden. Jeg kan styre indholdet af de 2 frames 100%.

Hvad kan jeg gøre, som vil virke pålideligt?
Avatar billede powernodes Nybegynder
21. oktober 2004 - 14:56 #1
Du kan ikke scripte på tværs af domæner (længere).
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:04 #2
Ok. Svar.
Avatar billede roenving Novice
21. oktober 2004 - 15:04 #3
Hvis det er et must, og også et must, at de skal ligge på forskellige domæner, kan du kun komme omkring det, ved virtuelt at lægge dem på samme domæne som hovedsiden ...
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:06 #4
Det lyder interessant! Jeg er dog ikke sikker på hvad du mener helt præcist. Gider du uddybe hvad det vil sige at lægge dem virtuelt på samme domæne?
Avatar billede roenving Novice
21. oktober 2004 - 15:14 #5
Hvis du henter koden til siden, som ikke ligger på samme domæne som hovedsiden vha. xmlhttprequest (et activeX-object), kan du så skrive den ind i iframen, og det vil så for browseren fremstå som om al koden stammer fra samme domæne ...

-- der er selvfølgelig den hage, at man under alle omstændigheder får sikkerheds-alerten, samt at det såvidt jeg ved kun virker i IE og Gecko-browserne (Mozilla, Netscape m.m.) på windows ...

-- og de har så forskellig syntaks !-)
Avatar billede ldanielsen Nybegynder
21. oktober 2004 - 15:17 #6
du kan have en 3. frame der ikke ses, men som klarer kommunikationen:
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:19 #7
Det er kreativitet! :-)
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:20 #8
ldanielsen ... hvilket domæne skulle den 3. frame så være på? og hvad skulle man kunne opnå?
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:23 #9
roenving, jeg kan godt se din løsning virker ... meget imponerende :)

Men det går bare ikke med den sikkerheds-alert. Det lyder som noget der ikke virker længere om 2 uger, næste gang Microsoft udgiver et security patch.
Avatar billede powernodes Nybegynder
21. oktober 2004 - 15:24 #10
Uden en promt er der ingen løsning - derfor jeg skrev ingen løsning :)
Avatar billede roenving Novice
21. oktober 2004 - 15:26 #11
Nej, det er ikke problemet, for activeX-komponentetn er i pricippet den samme, man i andre sammenhænge bruger til almindelig xml-requesting ...

-- og jeg kan ik' li'e se, at det at have en tredje frame fjerner problemet med at cross-domæne scripting bare er forbudt !-)
Avatar billede roenving Novice
21. oktober 2004 - 15:27 #12
-- og mit nej var selvfølgelig til niels' kommentar om M$-patching ...
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:27 #13
Jeg kan ellers godt lide løsningen - jeg bruger den sikkert en anden gang. Jeg kan bare ikke bruge den her, fordi systemet skal være langtidsholdbart.
Avatar billede ldanielsen Nybegynder
21. oktober 2004 - 15:27 #14
frame1: domain1/side.htm
frame2: domain2/side.htm
frame3: <tom>

Hvis du så har en variabel, strNavn i frame1 som du vil have over i frame2, så siger du fx:

frame3.location = "domain2/transport.html?strNavn=" + strNavn;

og domain2/transport.html har noget i denne stil
var strNavn = "" + window.location;
strNavn = strNavn.split("?")[1];
strNavn = strNavn.split("=")[1];

frame2.document.forms[0].textfield.value = strNavn;

Så har strNavn bevæget sig fra frame1 til frame2
Avatar billede ldanielsen Nybegynder
21. oktober 2004 - 15:32 #15
Tænk så på detteher:

i frame1
frame3.location = "domain2/transport.html?document.forms[0].submit();

og i frame3:
eval("frame2." + window.location.split("?")[1]);

du kan altså fra frame1 submitte formen i frame2
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:36 #16
ldanielsen - det lyder faktisk ikke helt idiotisk efter femte gennemlæsning. Jeg kigger lige lidt på om det kan lade sig gøre.
Avatar billede ldanielsen Nybegynder
21. oktober 2004 - 15:37 #17
Jamen det kan det skam, har selv brugt det. Jeg har dog ikke lige testet mine eksempler, så der er måske lidt typo's
Avatar billede ldanielsen Nybegynder
21. oktober 2004 - 15:42 #18
Der er selvfølgelig nogle risici ved det. I mit sidste eks bliver den kode der sendes med i url'en eksekveret ukritisk. Det er nok ikke en god ide.

Men ved at kode det sammen, så transport.html forventer at få tingene på en bestemt måde, så kan du opsætte næsten en hvilken somhelst kommunikation. De tre filer skal jo "kende hinanden" rimelig godt.
Avatar billede roenving Novice
21. oktober 2004 - 15:50 #19
-- og fire, hvis man skal kommunikere begge veje ...
Avatar billede nielsbrinch Nybegynder
21. oktober 2004 - 15:58 #20
Tak skal I have gutter. Skal vi få lukket spørgsmålet?
Avatar billede olebole Juniormester
21. oktober 2004 - 18:19 #21
<ole>

nielsbrinck >> Er du interesseret i fremtidsikring, bør du helt klart vælge XMLHttpRequests. Dét er fremtid!  ;o)
Du kan være ret sikker på, at ved IE's næste opdatering, bliver denne feature udviddet væsentligt - ligesom den formodentlig bliver implementeret i de få browsere, der endnu ikke understøtter XML ordentligt. Der er ingen, der gider blive ved med at skrive specialkode til gammelt skrammel (... ta' dén Opera *Hehe*).
Det skulle undre mig, om ikke iframe'en forsvinder fra WWW længe før XMLHttpRequests  ;o)

/mvh
</bole>
Avatar billede ldanielsen Nybegynder
22. oktober 2004 - 09:26 #22
Hvem synes du skal ha' point?
Avatar billede nielsbrinch Nybegynder
22. oktober 2004 - 11:03 #23
ldanielsen og roenving
Avatar billede ldanielsen Nybegynder
22. oktober 2004 - 12:36 #24
ok
Avatar billede roenving Novice
22. oktober 2004 - 14:04 #25
Jamen, så velbekomme '-)
Avatar billede nielsbrinch Nybegynder
22. oktober 2004 - 14:47 #26
Tak skal I ha' gutter! :)
Avatar billede roenving Novice
22. oktober 2004 - 15:05 #27
-- og tak for point ;~}
Avatar billede ldanielsen Nybegynder
24. oktober 2004 - 17:41 #28
og good luck med det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB