[php] sessie_id

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • jbweb
  • Registratie: Oktober 2004
  • Laatst online: 04-10-2023

jbweb

professional noob

Topicstarter
Wij ontwikkelen in PHP en maken hierbij veelvuldig gebruik van sessies. Op zich niets bijzonders, maar het valt ons de laatste tijd op dat er soms een in de querystring een PHPSESSID meegegeven wordt.
Waarom is dit? En beter nog, hoe kom je er af?
Ook als we in google op onze sites zoeken worden de links met deze PHPSESSID geïndexeert, lijkt me niet echt goed voor zoekresultaten.
Iemand een idee?

Als ik een leuke signature bedenk, zijn jullie de eerste die het weten


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Geef je variabelen (via een formulier) met POST of GET door? En ik neem aan dat je je sessionID nergens echo'd waar het niet moet (als in: een query ofzo :p). Maar op welke manier "in de query"; misschien een idee om de queries hier te posten?

Acties:
  • 0 Henk 'm!

  • apokalypse
  • Registratie: Augustus 2004
  • Laatst online: 21-09 10:21
misschien hebben jullie de sessie-cookies uitgeschakeld?
(maar bedoel je precies eigelijk met 'querystring' ? de url + GET parameters?, anders snap ik het verband met google niet ;))

http://nl3.php.net/manual/en/ref.session.php
zoals":'session.use_cookies' en 'session.use_only_cookies'

[ Voor 41% gewijzigd door apokalypse op 19-01-2007 12:12 ]


Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 22-09 14:08

AW_Bos

Liefhebber van nostalgie... 🕰️

Dat klopt. Dat is de querystring..
je kan de sessieid, die daarin wordt meegegeven uitschakelen met:
PHP:
1
2
3
<?php
ini_set('session.use_trans_sid',0);
?>

[ Voor 4% gewijzigd door AW_Bos op 19-01-2007 12:11 ]

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

jbweb schreef op vrijdag 19 januari 2007 @ 12:04:
Ook als we in google op onze sites zoeken worden de links met deze PHPSESSID geïndexeert, lijkt me niet echt goed voor zoekresultaten.
Iemand een idee?
Voor Google is dit fataal, elke keer als Google op de site komt staan er andere sessie id's. Google denkt daarom dat er allemaal nieuwe pagina's zijn want elke aparte url is een aparte pagina. Na 10 spiderronde's kan je site met 50 pagina's dus al 500 resultaten in Google bevatten. Alles staat er dus dubbel in en is heel nieuw, 2 factoren die je ranking niet echt bevorderen.

Acties:
  • 0 Henk 'm!

  • jbweb
  • Registratie: Oktober 2004
  • Laatst online: 04-10-2023

jbweb

professional noob

Topicstarter
Formulieren sturen we met POST en sessie id's worden inderdaad nergens geëcho'd

Hey gaat om de GET variabelen. dus www.domein.nl/index.php?id=15&PHPSESSID=(en dan je sessie_id)
Ik heb net de ini_set van Ariën geprobeerd, maar helaas, ik blijf deze PHPSESSID krijgen.
Vreemde is dat je na een refresh niet meer deze variabele in je url krijgt te zien.

Als ik een leuke signature bedenk, zijn jullie de eerste die het weten


Acties:
  • 0 Henk 'm!

  • Icelus
  • Registratie: Januari 2004
  • Niet online
Assuming you know what a session is (read the manual) the session id is what tells PHP who 'owns' the session data for that session id and that you are in fact that owner. Typically people accept the session id as a cookie but this isn't always the case, not everyone excepts these cookies so the session id needs to be sent within the request somehow/somewhere so through the url (GET) is one method for this. PHPSESSID is the default session name, this can be changed, but that's not important here.
Bron: FAQts.com

Developer Accused Of Unreadable Code Refuses To Comment


Acties:
  • 0 Henk 'm!

Verwijderd

Het is ook niet helemaal safe om je session_id in de url te hebben, stel dat iemand een leuke pagina op je site vind en die naar iemand door wil mailen waar het session_id in staat.

Je kan het ook in .htaccess uitzetten, mischien makkelijker om het zo gelijk voor je hele site te doen.

code:
1
php_flag session.use_trans_sid off

Acties:
  • 0 Henk 'm!

  • Raynman
  • Registratie: Augustus 2004
  • Laatst online: 00:00
jbweb schreef op vrijdag 19 januari 2007 @ 12:24:
Vreemde is dat je na een refresh niet meer deze variabele in je url krijgt te zien.
Dat is niet vreemd. PHP doet veel moeite om te sessie te kunnen volgen; dus cookie+GET parameter. Als het cookie geaccepteerd is, is het niet meer nodig om een URL parameter te gebruiken.

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
PHP:
1
ini_set('url_rewriter.tags', '');


voor je 'session_start();' zetten.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 22-09 15:11
Nogal een workaround vind je niet. De url_rewriter.tags geeft aan in welke tags de sessie moet worden meegegeven, indien er geen sessie cookie kon worden geset.
Logischer is het meegeven van de sessie-var via formulieren en urls uit te zetten met de eerder genoemde cvar; session.use_trans_sid

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Bij mij heeft het ook opgelost dat er automatisch extra form elementen in mn pagina gerenderd werden. Dat werd dus direct opgelost door deze ini_set() dus echt een work around vind ik t niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Als je op een LAMP server zit, is de .htaccess versie (zie boven) denk ik het handigst en zoals Andre al zei: die sessie-id's zijn funest voor je rankings. Liever gisteren weg dan vandaag...

Acties:
  • 0 Henk 'm!

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
Een workaround kan natuurlijk ook, maar of het verstandig is weet ik niet. Hetvolgende schoot even door mijn hoofd:

PHP:
1
2
3
4
5
6
if (preg_match('/PHPSESSID/i', $HTTP_HOST)) {
    //zorg dat alle <a href...>'s <form> met <input type=text value='.session_id().'> worden
    //door middel van een Header("Location: http://urlzonderphpsessid");
    //dus eerst referer naar de pagina waar geen phpsessid in de url is en 
    //waar wel <form>'s aanwezig zijn
}

[ Voor 14% gewijzigd door EnsconcE op 20-01-2007 21:00 ]

Pagina: 1