31. oktober 2006 - 12:38Der er
10 kommentarer og 1 løsning
fange host fra parent
Hejsa E
Jeg vil gerne lade nogle se mine data på deres web i en iframe, men jeg vil gerne kunne styre adgangen osv. Dertil må jeg kunne identificere hvem det er der kalder formen, men hvordan laves dette så man ikke bare lige kan snyde systemet ?
Jeg tænkte selv på at man kunne spørge om en session var sat, og hvis ikke, så sende vedkommende til en anden side der henter hosten med javascript (parent.document.location.host) laver postback, sætter sessionen og sender vedkommende tilbage til den oprindelige side igen, men det er jo nemt at snyde js.
Nej det er ikke klientens ip, men hosten. Hvis du f.eks. har et web på www.dtiweb.dk og henter min side ind i din iframe, skal jeg fra min side kunne se dit domæne og derved hente de farver og fonte og rettigheder osv, så dine brugere kun ser hvad der er relevant for dem, ud fra hvad jeg vil have de skal se.
Som jeg skriver i indlægget kan det gøres med javascript og man kan derved lægge det i en form og kalde siden igen og hente det ind den vej, men det er ikke så fedt med det genkald.
Dette bør virke, har får jeg serveren navn og ip skrevet ud i textboxe:
Response.Write("<script>alert('" & Page.Server.MachineName & "')</script>") Dim IPHE As New System.Net.IPHostEntry IPHE = System.Net.Dns.GetHostByName(Page.Server.MachineName) Dim AL() As System.Net.IPAddress AL = IPHE.AddressList Response.Write("<script>alert('" & AL.GetValue(0).ToString() & "')</script>")
Ja undskyld men jeg tror ikke du forstår. Det du foreslår giver hosten på min side, som jeg jo godt kender.
Det jeg vil have er hosten på den side der har importeret min side over i deres.
Se, det der skal ske er, at jeg har en side, som jeg selv hoster. På den side kan man søge i min database og vise en masse spændende resultater. Det vil jeg give folk lov til at låne mod betaling. Hvis der nu er f.eks A B og C der gerne vil låne min side, så opretter jeg dem i mit partnerprogram og de laver en Iframe på deres side som linker til min side. Hvis nu C holder op med at betale eller B køber super pakken, så skal jeg kunne styre det fra mit partnerprogram.
Jeg tænker at den bedste måde jeg kan sikre mig at dem der låner min side er dem som de giver sig ud for at være er, ved at jeg selv undersøger hvem de er, og dette vil jeg gøre ved at finde den host der låner min side. Det er det der svarer "parent" i javascript. Mon ikke der findes noget tilsvarende i .NET der er javascript så overlegen ?
Jeg ved at Page har en parent, så der istedet for at stå page.server.machinename kan stå page.parent.page.server.machinename. Men jeg har ikke testet det...
Jeg er på vej til jylland til svigermekanismen, men jeg har den bærbare med, så jeg ser om jeg kan få det testet i aften eller i løbet af weekenden. Det lyder meget lovende :-)
Parent virker tilsyneladende ikke, da den bruges til controller og ikke sider, efter hvad jeg kan få ud af det. Desuden er jeg ikke så interesseret i machinename, hellere en host (en IP eller domænenavn)
Det ser ikke ud til at kunne virke sådan. Kan du komme i tanke om andre måder hvormed jeg kan identificere hvem der referer iframen fra child-siden uden at de sender parametre (for det kan alle jo snyde med) men at jeg med kode henter oplysninger fra parent/den der kalder siden. HTTP_REFERER kunne måske bruges. Er det en sikker en, eller kan man snyde med den?
Jeg går videre med HTTP_REFERER. Man kan vist godt snyde med den, men så vigtigt er det heller ikke med alt det sikkerhed i denne sammenhæng. froenie> hvis du lægger et svar så deler vi i porten. Jeg takker for en god indsats fra din side :)
Du forsøgte og det er det som eksperten går ud på. Hjælp er ikke det samme som at få det til at virke, og nogen gange er det også nok bare at forklare sit problem, for at se en løsning. Mange tak og god weekend :)
Synes godt om
Ny brugerNybegynder
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.