[PHP] Cookie aanmaken in een frame werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Een deel van een site is in asp gemaakt door een bedrijf, en een ander deel is in php gemaakt door mij. Nou werkt de site met cookies voor de taal. Een nadeel is dat het asp deel op een andere server draait dan het php deel. De cookie voor de taal moet dus twee keer aangemaakt worden. Ene wordt in php gemaakt andere in asp. Mijn deel in php werkt als volgt:

setlanguage.php?language=161

161 is de taalcode. Als ik dit in de browser typ werkt hij perfect en kan ik de cookie gewoon uitlezen. Maar het werkt met een link en een vlaggetje en de cookie voor de andere server moet ook nog gemaakt worden in asp. Hoe dit gaat weet ik niet precies, maar mijn script wordt in een frame geladen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
<frameset rows="20,*,0" frameborder="NO" border="0" framespacing="0">
  <frame src="frames/frame_top.asp" name="topFrame" scrolling="NO" noresize>
  <frameset cols="*,796,*" frameborder="NO" border="0" framespacing="0">
        <frame src="frames/blank_left.asp" name="blank_left" scrolling="NO" noresize>
        <frameset cols="171,*" frameborder="NO" border="0" framespacing="0">
          <frame src="frames/frame_left.asp" name="leftFrame" scrolling="NO" noresize>
          <frame src="frames/frame_middle.asp" name="mainFrame" scrolling="yes" noresize>
        </frameset>
        <frame src="frames/blank_right.asp" name="blank_right" scrolling="NO" noresize>
    </frameset>
  <frame src="http://212.204.218.222/hanzestad/setlanguage.php?language=161" name="taalFrame" scrolling="NO" noresize>
</frameset>


Nu is de cookie echter niet aangemaak als ik daarna de pagina ververs. Als ik deze exacte link knip en in m'n browser plak werkt het wel.

Iemand een id hoe dit komt?

[ Voor 16% gewijzigd door Fles op 10-09-2004 15:06 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Graveheart schreef op 10 september 2004 @ 15:01:
Een deel van een site is in asp gemaakt door een bedrijf, en een ander deel is in php gemaakt door mij. Nou werkt de site met cookies voor de taal. Een nadeel is dat het asp deel op een andere server draait dan het php deel. De cookie voor de taal moet dus twee keer aangemaakt worden. Ene wordt in php gemaakt andere in asp. Mijn deel in php werkt als volgt:

...

Nu is de cookie echter niet aangemaakt! Als ik deze exacte link knip en in m'n browser plak werkt het wel.

Iemand een id hoe dit komt?
cookies kunnen niet over meerdere servers heen (gelukkig)
En ook browsers horen hiertegen beveiligd te zijn zodat je pagina geen cookie op een andere server kan zetten met behulp van een frame, en dat is wat er hier gebeurd :)

Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
Nou niet helemaal.

De pagina in php staat op de php server. Die wordt dus gewoon aangeroepen en maakt dus de cookie aan op diezelfde server waar het script op staat.

setlanguage.php staat op http://212.204.218.222 en maakt op diezelfde server dus de cookie aan. Tenminste dat zou hij moeten doen, maar doet dat niet.

[ Voor 32% gewijzigd door Fles op 10-09-2004 15:11 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Graveheart schreef op 10 september 2004 @ 15:10:
Nou niet helemaal.

De pagina in php staat op de php server. Die wordt dus gewoon aangeroepen en maakt dus de cookie aan op diezelfde server waar het script op staat.
die frameset staat dus op die PHP server?
terwijl daar die ASP files op staan :?

Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
De frameset staat in ASP op de asp server. Deze frameset roept dus een script aan op de andere server (php server) die vervolgens ook op de php server de cookie aanmaakt.

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Graveheart schreef op 10 september 2004 @ 15:12:
De frameset staat in ASP op de asp server. Deze frameset roept dus een script aan op de andere server (php server) die vervolgens ook op de php server de cookie aanmaakt.
Ja en dat kan niet voor zover ik weet. Volgens mij hoort een browser dit uit privacy niet toe te staan :)

Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
OMG! Dit heeft toch geen effect op de veiligheid? Je kunt hem toch ook in je browser plakken.

Hoe kan ik dit nou weer oplossen...? Ik weet wel dat je met php een cookie op een andere server kunt aanmaken, maar van asp heb ik geen verstand. En dat bedrijf dacht zelfs dat je een cookie van een andere server overal kon uitlezen |:( Dus ik betwijfel of die het voor elkaar kijgen.

Iemand een omweg?

Acties:
  • 0 Henk 'm!

  • Thekk
  • Registratie: Augustus 2002
  • Laatst online: 12-09 06:07
Kan je de language niet meegeven als je de eerste keer vanuit de .asp pagina's naar de .php gaat? Dan kan je verder wellicht een session variable gebruiken om 'm te onthouden?

Ik heb geen zin om een sig te maken.


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

Dit heeft geen effect op de veiligheid??? Pardon?
Kan je met PHP een cookie maken op een andere server? Dat misschien wel, maar uit security overwegingen wordt dit niet door de browser geaccepteerd.

Wat je als oplossing zou kunnen doen is een cookie/txt/xml op de php server wegschrijven met dezelfde settings als je normale cookie en deze (txt/xml) uitlezen op de asp.

Echt helemaal veilig is het niet maar het is een ranzige oplossing.

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Thekk schreef op 10 september 2004 @ 15:22:
Kan je de language niet meegeven als je de eerste keer vanuit de .asp pagina's naar de .php gaat? Dan kan je verder wellicht een session variable gebruiken om 'm te onthouden?
Hoe wil jij die session dan meenemen naar die andere site :P
Ook sessions worden doorgaands opgeslagen via een koekje :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

TeeDee schreef op 10 september 2004 @ 15:23:
Wat je als oplossing zou kunnen doen is een cookie/txt/xml op de php server wegschrijven met dezelfde settings als je normale cookie en deze (txt/xml) uitlezen op de asp.
Ranzig, dan lijkt een gemeenschappelijke database me handiger/overzichtelijker. :)

Overigens, PHP en ASP voor één site combineren is ook niet zo'n goed plan, je ziet waar je bijvoorbeeld tegenaan loopt. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 20-09 23:58

TeeDee

CQB 241

NMe84 schreef op 10 september 2004 @ 16:55:
[...]
Ranzig, dan lijkt een gemeenschappelijke database me handiger/overzichtelijker. :)
Overigens, PHP en ASP voor één site combineren is ook niet zo'n goed plan, je ziet waar je bijvoorbeeld tegenaan loopt. :P
Een db kan ook, met een Guid oid meegeven in de querystring, hidden form field. Helemaal niet aangedacht.

PHP/ASP combineren is idd geen goed plan, wel een uitdaging :+

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

NMe84 schreef op 10 september 2004 @ 16:55:
Overigens, PHP en ASP voor één site combineren is ook niet zo'n goed plan, je ziet waar je bijvoorbeeld tegenaan loopt. :P
Op zich kan je prima diverse talen gebruiken voor 1 site, het probleem zit hier alleen in het gebruik van meerdere servers :P
Dit soort problemen had ik ook toen ik java en php samen moest gebruiken, en uiteindelijk maar mod_jk geinstalleerd :+

Acties:
  • 0 Henk 'm!

Verwijderd

je kan geen cookies zetten in frames als deze op een ander domein zitten,
als je dat wel wil dan moet je P3P headers gebruiken

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Erkens schreef op 10 september 2004 @ 16:58:
Op zich kan je prima diverse talen gebruiken voor 1 site, het probleem zit hier alleen in het gebruik van meerdere servers :P
Dit soort problemen had ik ook toen ik java en php samen moest gebruiken, en uiteindelijk maar mod_jk geinstalleerd :+
offtopic:
Als ASP en PHP beiden op dezelfde server draaien dan gaat het nog... Maar wanneer je 2 verschillende talen en 2 verschillende servers gebruikt, dan getuigt dat IMHO van een slechte planning. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Fles
  • Registratie: Augustus 2001
  • Laatst online: 06-04-2023
TeeDee schreef op 10 september 2004 @ 15:23:
Dit heeft geen effect op de veiligheid??? Pardon?
Kan je met PHP een cookie maken op een andere server? Dat misschien wel, maar uit security overwegingen wordt dit niet door de browser geaccepteerd.

Wat je als oplossing zou kunnen doen is een cookie/txt/xml op de php server wegschrijven met dezelfde settings als je normale cookie en deze (txt/xml) uitlezen op de asp.

Echt helemaal veilig is het niet maar het is een ranzige oplossing.
Nee, tuurlijk geen effect op de veiligheid. Het script staat toch op de server waar ook de cookie aangemaakt wordt. Het enige is dat een andere site het script aanroept. Maar dit komt op hetzelfde neer als dat je de link in je browser typt toch? Nix veiligers aan, om het niet toe te staan. En je kunt toch ook pagina's van andere sites openen in een frame, dan kan hij toch ook gewoon dit script draaien en op de server waar het script staat de cookie aan maken. Het is dus niet de bedoeling dat hij op de site waar het frame staat de cookie aan maakt.

Aan of je met php een cookie op een andere server kunt aanmaken begin ik ook te twijfelen idd. Dat zou NIET erg veilig zijn. Zo staat de functie in de manual:

setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

Leek me dat je met domain het domein kunt opgeven, maar dit zal anders bedoelt zijn :P

Lijkt me het beste om het script in php aan te roepen en die met header door te sturen naar waar hij vandaan kwam...
PHP/ASP combineren is idd geen goed plan, wel een uitdaging
Ik had mijn gedeelte af in PHP en toen heeft iemand anders het overgenomen. Die wilde in ASP gaan werken 8)7 Dat moet hij dan maar zelf weten.
je kan geen cookies zetten in frames als deze op een ander domein zitten,
als je dat wel wil dan moet je P3P headers gebruiken
Wat is P3P?

[ Voor 12% gewijzigd door Fles op 10-09-2004 17:24 ]


Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Graveheart schreef op 10 september 2004 @ 17:22:
Nee, tuurlijk geen effect op de veiligheid. Het script staat toch op de server waar ook de cookie aangemaakt wordt. Het enige is dat een andere site het script aanroept. Maar dit komt op hetzelfde neer als dat je de link in je browser typt toch? Nix veiligers aan, om het niet toe te staan. En je kunt toch ook pagina's van andere sites openen in een frame, dan kan hij toch ook gewoon dit script draaien en op de server waar het script staat de cookie aan maken. Het is dus niet de bedoeling dat hij op de site waar het frame staat de cookie aan maakt.
Nee als je een cookie zet in een frameset die op een andere server staat dan kan je daarmee privacy info doorspelen naar een andere server, wat doorgaands niet gewenst is.
Pagina: 1