[php] PHPSESSID achter URL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb het volgende probleem. Ik heb een PHP-pagina, waarbinnen gebruik wordt gemaakt van sessie-variabelen. Nu verschijnt er echter regelmatig "&PHPSESSID=..." achter de URL, bijv. bij een <A HREF>. Dit gebeurt echter niet altijd en ik zie ook geen logica in de gevallen waarin het wel voorkomt. De server staat als volgt ingesteld:

session.use_cookies - On
session.use_trans_sid - On

Als de sessie-id echter achter de URL verschijnt, loopt het programma in de soep, omdat als je vervolgens terugkeert vanaf een andere pagina is de sessievariabele opeens leeg. Dit kan alleen verholpen worden door de sessie-id ook weer expliciet mee terug te geven (dus ook weer "&PHPSESSID=..." achter de URL te plakken).

Wat me inmiddels ook is opgevallen, is dat de sessie-id nooit achter de URL verschijnt als ik - voordat ik naar de pagina ga - eerst een andere pagina laadt waarbinnen ook sessie-variabelen worden gebruikt.

Iemand een idee waar dit aan ligt en hoe ik het kan verhelpen?

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
Staan (clientside) de cookies wel aan?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
PrisonerOfPain schreef op 24 oktober 2003 @ 12:11:
Staan (clientside) de cookies wel aan?
Ja, aan de client-side beveiligingsinstellingen ligt het niet, want zelfs met de allerlaagste beveiliging treden nog de problemen op.

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb het ook wel eens gezien! Vond het toen ook al vreemd dat het inderdaad zonder enig patroon is, soms komt die PHPSESSID er achter, en dan is ie een hele tijd weer niet te vinden! :p Denk dat het aan een server instelling ligt, want ik heb het eigenlijk alleen pas op 1 server meegemaakt.

Acties:
  • 0 Henk 'm!

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 05-09 22:23
Wat als je session.use_trans_sid op "0" zet?

ini_set ('session.use_trans_sid', 0); oid

edit:

of anders
ini_set ('session.use_only_cookies', 1);

[ Voor 36% gewijzigd door Maxonic op 24-10-2003 16:46 ]


Acties:
  • 0 Henk 'm!

  • JQR
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:26

JQR

gebruik je wel
PHP:
1
session_start();
aan het begin van je pagina's ?

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 24 oktober 2003 @ 11:58:
Nu verschijnt er echter regelmatig "&PHPSESSID=..." achter de URL, bijv. bij een <A HREF>. Dit gebeurt echter niet altijd en ik zie ook geen logica in de gevallen waarin het wel voorkomt.
Weet je zeker dat het niet gewoon de eerste keer is dat je op de site komt sinds je je browser open hebt? Dat is namelijk standaard gedrag in PHP. Omdat het nog niet weet of de client cookies accepteert of niet wordt bij de eerste link de sessie ID nog in de url geplakt. Blijkt dat de client cookies accepteert dan wordt het er niet meer achtergeplakt op de volgende pagina en anders wel.

Acties:
  • 0 Henk 'm!

  • Roa
  • Registratie: December 2002
  • Laatst online: 03-07-2024

Roa

volgens mij heeft et ook te maken met session_start();

Ik had er ook 'last' van, maar marty heeft ook een goed punt...

Research is what I'm doing when I don't know what I'm doing.


Acties:
  • 0 Henk 'm!

  • cdgrit
  • Registratie: Mei 2002
  • Laatst online: 13-01 16:44
Welke PHP versie gebruik je?
Het komt me namelijk bekent voor en volgens mij werd de session ID na een PHP Upgrade (Vanaf versie 4.3.0 dacht ik) weer enkel in een cookie opgeslagen en niet meer in de URL meegezonden.


Originele startpagina - Stadindex.nl


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 24 October 2003 @ 11:58:
verschijnt er echter regelmatig "&PHPSESSID=..." achter de URL, bijv. bij een <A HREF>.
session.use_cookies - On
session.use_trans_sid - On
Doordat je session.use_trans_sid - On hebt ingesteld mag PHP eventueel ook de sessionid via de URL meegeven.
PHP beslist naar aanleiding van het wel of niet versturen van het session cookie door de client (browser) of cookies wel of niet ondersteund worden.

Door session.use_only_cookies op 1 te zetten voorkom je dat PHP URL's gaat aanpassen. Als de client dan geen session cookie heeft verstuurd raakt je session mechanisme ook onderbroken.

Sessions zijn nooit 100% betrouwbaar en ook niet echt veilig, maar het gemak voor de bezoekers is best groot.

Acties:
  • 0 Henk 'm!

Verwijderd

De logica van phpsessid:

Als je 'session.use_trans_sid - On' hebt, zal bij de eerste keer openen van de pagina ALTIJD de "&PHPSESSID=..." achter de href's hebben staan omdat php zelf niet vantevoren weet of je cookies accepteerd of niet (zou hij wel kunnen door eerst een test te doen maar dat doet php nou eenmaal niet (gelukkig)).

Als je de pagina 'refreshed' zul je zien dat de phpsessid's weg zijn als je browser cookies kan accepteren omdat php ziet dat er een cookies gezet is dus er van uit gaat dat je cookies accepteerd en dus de PHPSESSID in de href niet meer nodig acht.

Dus sluiten van de browser en opnieuw naar de pagina gaan levert weer sessionid's op in de href omdat de session cookies alleen per (browser)sessie gebruikt worden.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok, bedankt allemaal! :D Het is inderdaad een eenmalig iets (er zit dus wel degelijk logica in) en is verholpen na een refresh. Ik zou alleen nog in willen kunnen stellen dat de server er automatisch vanuit gaat dat de client cookies accepteert en hij dus GELIJK het in een cookie zit en dus de session-id niet achter de URL komt. Ik dacht zelf dat dit de "session_use_cookies_only" in de php.ini was (of iets in die geest), maar zelfs als ik die op 1 zet, dan blijft het de eerste keer verschijnen. Is verder geen ramp hoor, maar kon zijn dat iemand toevallig ook daar een oplossing voor wist. :)

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
volgens mij doet ie dat niet meer als je de session.use_trans_sid op 0 zet

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
marty schreef op 30 oktober 2003 @ 20:47:
volgens mij doet ie dat niet meer als je de session.use_trans_sid op 0 zet
Dat klopt, maar dan schakel je gelijk ook alle sessie-functionaliteit uit. M'n sessie-id ben ik dan wel kwijt achter de URL, maar m'n sessies werken dan ook niet meer. Deze suggestie had ik ook al in een aantal andere threads gelezen, maar hierbij: dit is GEEN oplossing!!

(toch bedankt ;))

Acties:
  • 0 Henk 'm!

  • marty
  • Registratie: Augustus 2002
  • Laatst online: 27-03-2023
Verwijderd schreef op 30 oktober 2003 @ 20:55:
[...]


Dat klopt, maar dan schakel je gelijk ook alle sessie-functionaliteit uit.
weet je dat heel zeker? volgens mij praat je nu poep :)
Toegegeven, ik heb er zelf nog nooit mee gekloot, maar voorzover ik de manual begrijp is deze optie alleen ingebouwd om de security risks die gepaard (kunnen) gaan met het doorgeven van de sessie-id in de url tegen te gaan. En dus leid ik daar uit af dat als je dit uit zet je sessies evengoed blijven werken (via cookies), maar gewoon niet meer in de url verschijnen (en dus alleen werken als je cookies aan staan)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
marty schreef op 30 oktober 2003 @ 21:17:
[...]

weet je dat heel zeker? volgens mij praat je nu poep :)
1. Ik praat NOOIT poep. :(
2. Dat weet ik inderdaad zeker, omdat ik het heb geprobeerd. :*)

Acties:
  • 0 Henk 'm!

  • Tycoontje
  • Registratie: Februari 2003
  • Laatst online: 15-07 12:59
session.use_trans_sid moet wel degelijk op 0. Ik wilde geen ID in m'n url's, omdat ik niet wilde dat ze gecopieerd kunnen worden. maar af en toe kwamen er toch eentje door. Inderdaad vooral in het begin.

Ik kwam er vanaf door net na session_start:
session.use_cookies op 1
session.use_only_cookies op 1
session.use_trans_sid op 0
te zetten.

offtopic:
En m'n sessions werken prima. Dus ik praat geen poep.
Pagina: 1