[Javascript] "Tainting"? Mogelijke oplossing?

Pagina: 1
Acties:

  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Sinds kort heb ik een eigen domeinnaam met een klein beetje hosting space. Daarop staat de index.html die bestaat uit één frame, welke mijn website op een andere server in dit frame laadt (zodat de domeinnaam dus in de location bar blijft staan).

Nou bestaat mijn website ook uit frames. Ik wil voorkomen dat mensen een pagina opvragen buiten het frame om. Daarvoor heb ik een javascriptje geschreven dat checkt of de juiste frameset aanwezig is en zo niet, de frameset laadt EN vervolgens de oorspronkelijk opgevraagde pagina erin laadt.
Dit laatste gebeurt dmv. een substring die door de oorspronkelijk opgevraagde pagina aan de url wordt toegevoegd (bv. www.alice-in-wonderland.net?alice1.html). Wanneer de frameset geladen wordt, checkt de welkomstpagina (main.html, met een teller erop) op die substring en vervangt zichzelf hierdoor.

Dit is het scriptje dat dat doet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script language="JavaScript">
<!--
 function checkorigin()
 {
 var url = (parent.location.search ? unescape(parent.location.search.substring(1)):'main.html');
 if (url != "main.html")
  {
  window.parent.Main.location.href = url;
  }
 }
//-->
</script>


In het verleden werkte dit prima. Maar nu niet meer. Om het script werkend proberen te krijgen heb ik 'parent' vervangen door 'top' (of parent.parent), omdat ik immers een frameset in een frameset heb. Maar ik krijg de volgende Javascript error:
Error: uncaught exception: Permission denied to get property Window.frames
Ik heb het vermoeden dat dit wordt veroorzaakt door "tainting", iets dat ik op deze site las. Dus dat ik de url met substring niet zou kunnen opvragen omdat de frame waarop het scriptje staat, op een andere server staat dan de pagina waaruit ik de location moet opvragen.
Maar ik kan niet met zekerheid zeggen dat dit inderdaad ook in mijn situatie het geval is, ik begrijp het stukje namelijk niet 100%.

De search leverde helaas geen topics over dit onderwerp op. Dus mijn vragen:
1. Werkt mijn scriptje inderdaad niet door het 'tainting' probleem, of doe ik gewoon iets fout?
2. Als het door tainting komt, is er dan een manier om toch mijn doel te bereiken?

Alvast ontzettend bedankt!

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

het antwoord is iets korter dan je vraag:
met javascript mag je geen script/frames/layers/whatever besturen of properties opvragen op een ander domein.
Dat valt onder de noemer beveiligingslek.

Wat je d'r in jouw geval tegen kunt doen is de site gewoon op je domein onder brengen, dus op je hostingspace.

een andere ranzige oplossing is met serverside scripting telkens de gevraagde pagina dmv een include tonen, het lijkt dan alsof ie van het zelfde domein komt en je javascript werkt weer.

www.jurgroessen.nl


  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Hangloozz schreef op 26 september 2002 @ 21:24:
het antwoord is iets korter dan je vraag:
Sorry; ik dacht: wees maar duidelijk anders kun je nog 10x replyen met aanvullende details ;)
met javascript mag je geen script/frames/layers/whatever besturen of properties opvragen op een ander domein.
Dat valt onder de noemer beveiligingslek.
Dus toch :{
Wat je d'r in jouw geval tegen kunt doen is de site gewoon op je domein onder brengen, dus op je hostingspace.
Dat is helaas geen optie, aangezien ik maar 5 Mb heb. Het grootst mogelijke hosting-account daar is 50 Mb, dat is eigenlijk net te klein en zoiets kost me bovendien veel te veel geld.
een andere ranzige oplossing is met serverside scripting telkens de gevraagde pagina dmv een include tonen, het lijkt dan alsof ie van het zelfde domein komt en je javascript werkt weer.
Ik weet niet wat je daarmee bedoelt... kun je dat uitleggen?

  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Het is opgelost.... :) Voor degene die na mij komt met hetzelfde probleem:

Het was eigenlijk mega-simpel op te lossen (maar ik bedacht het nu pas |:( ), namelijk door de 'originele' frameset EN de welkomstpagina op de domainserver te zetten - daar was wel genoeg ruimte voor. En vervolgens de inhoud van de frameset van de andere server te halen. Dus in het Main frame komt OF de welkomstpagina, van dezelfde server, OF een andere pagina, van de andere server.

Verwijderd

Op 5 mb kun je toch een heel zooitje website kwijt.... :?

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Verwijderd schreef op 02 oktober 2002 @ 13:48:
Op 5 mb kun je toch een heel zooitje website kwijt.... :?
Dat dacht ik ook :) Wellicht doet onze topicstarter iets niet helemaal goed met de afbeeldingen...

* Woudloper denkt dat tenminste...

  • Millennyum
  • Registratie: Januari 2001
  • Laatst online: 04-05-2023
Woudloper schreef op 02 oktober 2002 @ 14:06:
[...]

Dat dacht ik ook :) Wellicht doet onze topicstarter iets niet helemaal goed met de afbeeldingen...

* Woudloper denkt dat tenminste...
Onze topicstarter heeft veel thumbnails + goede kwaliteit plaatjes en bovendien een aantal .wav en .mov files op haar website ;)
Pagina: 1