Avatar billede jl4511 Nybegynder
13. august 2005 - 22:16 Der er 15 kommentarer og
2 løsninger

Kan man i en IFRAME se hvem der "hoster" den IFRAME?

Hej

Jeg har en web-side fra domæne A kørende i en IFRAME, der kører på domæne B.
Kan programmet i iframen på nogen måde finde ud af hvilket domæne den kører i?

Håber det er bare nogenlunde forståeligt? :-)
Avatar billede nielle Nybegynder
13. august 2005 - 22:30 #1
Hvis du har styr over begge domæner så kan du f.eks. gøre det ved at sætte et id på din source:

<iframe src="http://www.detAndetdomæne.dk?id=fraDetteDomæne"></iframe>

- hvorefter id kan aflæses på detAndetdomæne.dk.
Avatar billede jl4511 Nybegynder
13. august 2005 - 22:34 #2
Ja, men det har jeg ikke.
Det kan være ét domæne, eller det kan være 100 domæner, der kører min applikation.
Avatar billede nielle Nybegynder
13. august 2005 - 22:35 #3
Du kan jo bare nægte at domæner, som ikke identifisere sig med et id, ikke kan få lov til at afvikle din applikarion.
Avatar billede nielle Nybegynder
13. august 2005 - 22:43 #4
Alternativt kan din applikation spørge til HTTP_REFERER:

if ($_SERVER['HTTP_REFERER'] != "http://www.eksperten.dk")
{
    header("Location: http://www.disney.com/");
}
Avatar billede jl4511 Nybegynder
13. august 2005 - 22:45 #5
Alle der afvikler applikationen har deres egen id - men du kunne jo sagtens gå ind og kopiere den lille stump kode og så kører samme appl. med den andens data!
Derfor vil jeg gerne have fat i host-domænet, så jeg kan tjekke det op mod mine oplysninger på pågældende ID. Jeg har nemlig id og domæne i min DB.

Så det hele hænger på: Kan jeg fra en IFRAME så fat i host-domænet?
Avatar billede jl4511 Nybegynder
13. august 2005 - 22:54 #6
Referer viser ingenting - der er jo heller ingen henvisning nødvendigvis.
Og iøvrigt er jeg ret ligeglad med hvor de kommer fra :-)
Avatar billede leif Seniormester
13. august 2005 - 23:13 #7
Ved ikke om du kan bruge $_SERVER["HTTP_HOST"] til noget !
Avatar billede leif Seniormester
13. august 2005 - 23:20 #8
Hvis jeg på Domæne A laver en iframe som henter en side på Domæne B kan jeg se Domæne A i HTTP_REFERER
Avatar billede jl4511 Nybegynder
13. august 2005 - 23:33 #9
Kunne jeg lokke den kodelinie ud af dig?
Jeg har prøvet med denne:
echo "<h5>Referer: " . $_SERVER["HTTP_REFERER"] . "</h5>";

Og den viser absolut ingenting!
Avatar billede leif Seniormester
13. august 2005 - 23:45 #10
Men fil med iframe:
<iframe src="http://www.domæneB.dk/referer.php"></iframe>

Filen referer.php:
<?
echo "Referer er: ".$_SERVER["HTTP_REFERER"];
?>
Avatar billede olebole Juniormester
14. august 2005 - 00:10 #11
<ole>

Referer er noget af det letteste at fake, så den er nok ikke god at bruge. Næsten ligeså let er det at fake en IP, så det er heller ikke så meget værd.
Faktisk er der ikke nogen sikker metode til at gætte, hvem der bruger din iframe  :)

/mvh
</bole>
Avatar billede jl4511 Nybegynder
14. august 2005 - 00:10 #12
Mystisk?
Jeg har lavet nøjagtig det samme, men får ikke noget!

Men er der ikke også noget med at referer er afhængig af hvordan User Agent er sat op? Så egentlig er løsningen ikke pålidelig - desværre :-(

Tror jeg lader den stå åben et par dage.
Avatar billede jl4511 Nybegynder
14. august 2005 - 00:16 #13
Hov - så lige svaret fra olebole nu.
Jeg tror desværre du har ret ole.

Tid til at dele ud af point.
Leif, nielle og ole, giver I et svar, så fordeler jeg efter forgodtbefindende :-)
Avatar billede nielle Nybegynder
14. august 2005 - 07:54 #14
Der er ikke nogen simpel måde at gøre det på hvis det også samtidigt skal være 100% sikkert. I den slags tilfælde skal man vurdere om det er det værd.

Læg mærke til at vi har tre parter i dette tilfælde: DomæneA (ven/fjende),  DomæneB (din applikation), og brugeren med sin browser (sandsynligvis uskyldig). I tilfældet HTTP_REFERER, er det jo ikke DomæneA som kan snyde DomæneB til at tro at  kaldet kommer fra det venligesindede DomæneC. Alt dette styres derimod af brugerens browser, så hvis DomæneA vil stjæle DomæneB igennem en iframe så er hun afhængig af at alle hendes brugerene sværger sig sammen med hende.

Måske virker HTTP_REFERER ikke i 100% af tilfældende, men når det gør og DomæneA fremstårklart og tydeligt overfor din applikation, kan du jo skrive noget i stil med ”Denne applikation er stjålet”. Mon ikke dette skulle afskrække tilstrækkeligt til at DomæneA ville lade være med at gøre det. ;^)
Avatar billede nielle Nybegynder
14. august 2005 - 07:54 #15
... og et svar :^)
Avatar billede jl4511 Nybegynder
14. august 2005 - 10:01 #16
Tak for det... jeg fik ikke løst mit problem 100%, men fik en del godt input, som jeg kan gå og tænke lidt over :-)
Afventer lige svar fra Leif og Olebole, før jeg fordeler pointene.
Avatar billede leif Seniormester
14. august 2005 - 10:43 #17
Svar.
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