Archief - PHP: Sessions

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

0n3Liner

Legacy Member
Ik denk hier zo stil in mijn hoofd...
sessions...hoe beveilig ik deze tegen hijacking...

ik heb al rondgekeken naar oplossingen, maar het blijft hetzelfde, er zijn wel oplossingen, maar meestal zijn deze of niet 100% waterdicht of vormen ze een probleem voor meer dan 2% van de bezoekers. En ik heb liever problemen voor 0% van de bezoekers.

Het handigste zou natuurlijk zijn als er iemand hier met een kant en klare functie zou afkomen (hahahaha!) maar ik ben tevreden met een simpele hint of wat uitleg.

DarkBone

Legacy Member
Door het gebruik van SSL kunnen session ID's niet onderschept worden :)

killgore

Legacy Member
secure sockets layers, ofwel op de server zelf in te stellen, of als je wilt coden in php: openssl:

http://be.php.net/openssl

andere trucs: zoveel mogelijk clientdata opslaan (alles van hardware & software versions dat je kan opvragen bv., kan al zeer effectief zijn vs hijack).

edit: ik kan niet echt onmiddelijke oplossing geven vo sessions & ssl daar ek ssl zelf nog maar effe in php "ontdekt" heb :(.

[DZM]TheOne

Legacy Member
heeft iemand dergelijke duidelijke info ontdekt voor asp?

0n3Liner

Legacy Member
killgore zei:
secure sockets layers, ofwel op de server zelf in te stellen, of als je wilt coden in php: openssl:

http://be.php.net/openssl

andere trucs: zoveel mogelijk clientdata opslaan (alles van hardware & software versions dat je kan opvragen bv., kan al zeer effectief zijn vs hijack).

edit: ik kan niet echt onmiddelijke oplossing geven vo sessions & ssl daar ek ssl zelf nog maar effe in php "ontdekt" heb :(.


ben ik eigenlijk nog niets mee, want dan moet ik al de gebruikers van mijn cms al verplichten tot installeren van die extensie

killgore

Legacy Member
0n3Liner zei:
ben ik eigenlijk nog niets mee, want dan moet ik al de gebruikers van mijn cms al verplichten tot installeren van die extensie
dan zou ik oude trucs gebruiken, zoals ik bv. vanboven al heb gepost:

-client info opslaan (ip, browser, eventuele hardware, ...)
-cookie-db id: je maakt buiten je sessie een cookie aan met een bepaald id in, ook in je sessie steek je een (ANDER) id (liefst ook tot. anders gegenereerd, gebruik je voor het 1 time, gebruik dan voor et ander microseconde of zo). in je db heb je table die de 2 id's linkt. komen de id's overeen: alles in orde :). Enige nadeel: user MOET cookies enabled hebben.

dJeez

Legacy Member
0n3Liner zei:
ben ik eigenlijk nog niets mee, want dan moet ik al de gebruikers van mijn cms al verplichten tot installeren van die extensie
SSL is niet apart te installeren, ELKE recente browser heeft SSL/TLS support ingebakken.

Het enige wat jij hoeft te doen is het SSL certificaat installeren op de server (jaarlijks te hernieuwen), en de bezoekers moeten dat certificaat enkel accepteren (ofwel eenmalig, ofwel steeds opnieuw). Een self-signed certificaat kan eventueel ook, maar dan moet de gebruiker dat toevoegen aan z'n root certificates om de popup te vermijden bij elk bezoek.

SSL op zich levert trouwens totaal geen oplossing voor session hijacking. En er bestaat geen 100% waterdicht systeem, je kan enkel het risico beperken (vb. via one-time password authentication of iets dergelijks).

killgore

Legacy Member
dJeez zei:
SSL is niet apart te installeren, ELKE recente browser heeft SSL/TLS support ingebakken.

Het enige wat jij hoeft te doen is het SSL certificaat installeren op de server (jaarlijks te hernieuwen), en de bezoekers moeten dat certificaat enkel accepteren (ofwel eenmalig, ofwel steeds opnieuw). Een self-signed certificaat kan eventueel ook, maar dan moet de gebruiker dat toevoegen aan z'n root certificates om de popup te vermijden bij elk bezoek.

SSL op zich levert trouwens totaal geen oplossing voor session hijacking. En er bestaat geen 100% waterdicht systeem, je kan enkel het risico beperken (vb. via one-time password authentication of iets dergelijks).
hij bedoelt de serverside openssl extension die bij php zit ;). hij wilt blijkbaar een cms voor publiek doel maken :).

DarkBone

Legacy Member
dJeez zei:
SSL op zich levert trouwens totaal geen oplossing voor session hijacking. En er bestaat geen 100% waterdicht systeem, je kan enkel het risico beperken (vb. via one-time password authentication of iets dergelijks).
Kunt ge dat wa meer uitleggen? Ik had hier en daar gelezen dat dat net wel een oplossing was omdat alles dan geëncrypteerd wordt?

*edit*
Ok, ge kunt er niet mee tegengaan dat men URL's doorgeeft met de session id, maar TCP session hijacking wordt wel tegengegaan toch?
Of wordt de url nooit geëncrypteerd doorgegeven?

dJeez

Legacy Member
killgore zei:
hij bedoelt de serverside openssl extension die bij php zit ;). hij wilt blijkbaar een cms voor publiek doel maken :).
:confused: Waarom brengt hij dan zijn gebruikers die een extensie zouden moeten installeren ten berde?

0n3Liner

Legacy Member
dJeez zei:
:confused: Waarom brengt hij dan zijn gebruikers die een extensie zouden moeten installeren ten berde?

waarschijnlijk verkeerd gelezen ofzo, ik dacht dat dit niet standaard in een php installatie zat...

Impuls

Legacy Member
Dit kan je op iedere pagina "includen" zodat indien ze rechtstreeks naar subpagina's surfen er toch een controle is :

<?php
session_name(sessie);
session_start();
header("Cache-control: private"); // IE 6 Fix.



if (count($HTTP_SESSION_VARS) <= 0)
{session_unset();
session_destroy();
echo ("<script language='Javascript'>window.location='./alert.php?type=6';</script>");
}


?>

WHiSPy

Legacy Member
Impuls zei:
Dit kan je op iedere pagina "includen" zodat indien ze rechtstreeks naar subpagina's surfen er toch een controle is :

<?php
session_name(sessie);
session_start();
header("Cache-control: private"); // IE 6 Fix.



if (count($HTTP_SESSION_VARS) <= 0)
{session_unset();
session_destroy();
echo ("<script language='Javascript'>window.location='./alert.php?type=6';</script>");
}


?>

Dan is het challenge-response principe toch veel effectiever, hoor.

killgore

Legacy Member
Impuls zei:
Dit kan je op iedere pagina "includen" zodat indien ze rechtstreeks naar subpagina's surfen er toch een controle is :

<?php
session_name(sessie);
session_start();
header("Cache-control: private"); // IE 6 Fix.



if (count($HTTP_SESSION_VARS) <= 0)
{session_unset();
session_destroy();
echo ("<script language='Javascript'>window.location='./alert.php?type=6';</script>");
}


?>

1) oude code
2) slechte code
3) imho niet zo effectief

dJeez

Legacy Member
killgore zei:
de webdevs die gebruik maken van zijn cms???
Een CMS consulteer je doorgaans wel via een browser, er is dus niks extra te installeren dus in dat geval (buiten eventueel het self-signed certificaat zoals aangehaald, maar zelfs dat is geen vereiste als je met die popup kan leven :p).

Impuls

Legacy Member
killgore zei:
1) oude code
2) slechte code
3) imho niet zo effectief

Ok ik ben een totale php noob...dus ik ben fier op mezelf dat dit al werkt.

Doch....challenge-respons....explain please !

Merci
Impuls
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan