Session Fixation

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Laravel PHP developer in een jong team

Bedrijfsomschrijving Als je op zoek bent naar een werkplek waar plezier en uitdaging hand in hand gaan, dan is dit bedrijf de juiste keuze voor jou. Hier kun je werken aan uitdagende projecten en krijg je als developer veel verantwoordelijkheid. Het bedrijf waardeert kwaliteit boven kwantiteit en richt zich op het ontwikkelen van hoogwaardige applicaties en websites waar klanten enthousiast over zijn. Dit bedrijf is vooruitstrevend en streeft naar het leveren van de best mogelijke resultaten voor hun klanten. Als medior PHP ontwikkelaar met 3 jaar ervaring ben jij de persoon die we zoeken. Je krijgt hier de kans om

Bekijk vacature »

Full stack developer

Functie Binnen een ontzettend stimulerende werkomgeving kom jij te werken in een software team van 14 developers. Met ontzettend stimulerend bedoel ik een modern pand, wat voorzien is van alle nodige soft- en hardware, zodat jij jouw werk goed kan uitvoeren. Daarnaast zitten ze in een bos, waardoor je in een groene omgeving rustig kunt werken. Het team bestaat uit front end, back end en full stack developers. Jij krijgt dus de keuze hier waar jij jezelf het liefst op zou richten, maar de voorkeur gaat uit naar back end. Er wordt hier Scrum (agile) gewerkt in multidisciplinaire teams met

Bekijk vacature »

IoT Developer

Ben jij innovatief, heb jij passie voor energie en ben je data gedreven? Bouw dan mee aan IoT binnen Bredenoord. Samen met een gedreven team werk jij aan mooie technische en innovatieve oplossingen. Wat houdt de functie van IoT Developer in? Binnen Bredenoord zijn wij momenteel volop in ontwikkeling met ons IoT platform. Als uitbreiding van ons team zijn wij op zoek naar een IoT Developer. Je zal in projectverband meehelpen met het implementeren van IoT vraagstukken binnen Bredenoord. Als IoT Developer op onze R&D-afdeling word je verantwoordelijk voor het verder inrichten en beheren van ons nieuwe IoT platform. Dat

Bekijk vacature »

Senior PHP developer

Functie Als Senior PHP developer heb je een sterke mening over de architectuur van projecten en de processen binnen het team. Je bent de sparringpartner voor je Team Lead. Ook ondersteun je met jouw kennis de minder ervaren developers in jouw team. Ze werken regelmatig aan projecten vanaf scratch en dit geeft ruimte om voor nieuwe technieken te kiezen. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

.NET developer

Functie Jouw team van vier collega .NET developers is verantwoordelijk voor het bouwen van de ETL processen van jouw nieuwe werkgever. Op dit moment wordt de front-end gedaan door een extern team van professionals. Echter wilt jouw nieuwe werkgever graag intern deze kennis uitbreiden en heeft dan ook de ambitie om dit voor het eind van het jaar intern te gaan aanpakken. Dit betekend dat jij als .NET ontwikkelaar de ideale kans krijgt om jezelf samen met jouw collega’s te ontwikkelen als full stack developer. Als .NET ontwikkelaar werk jij bij deze gave werkgever met C# .NET, SQL, JavaScript, REST

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Medior/senior front end developer

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het development team. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met

Bekijk vacature »

Lead Webdeveloper

As Lead Web Developer at KUBUS you are responsible for the implementation design of requirements and the software architecture of the web application and services of BIMcollab. In your role as lead developer you will naturally search for the optimum between the required implementation time, the performance of the application and a fast go-to-market of features, in line with our automated test and release train. Together with the other senior developers in your team you monitor the architecture of the application and you advise the product owner about necessary refactoring to improve the maintainability of the platform. Our development team

Bekijk vacature »

PHP Back-end Developer

Vacature details Vakgebied: Software/IT Opleiding: Starter Werklocatie: Nijmegen Vacature ID: 13633 Introductie OUr client develop websites, webshops, and digital environments that are used by many visitors daily. They are seeking an experienced PHP-Developer Back-end to join the team. If you're looking for a position where you can tackle challenging, innovative, and multidisciplinary ICT projects and make a difference, this vacancy might be for you! Functieomschrijving As a PHP developer, you'll develop websites and digital environments used by many visitors daily. You'll work as a back-end developer and want to continuously develop in this field. You can work independently and efficiently,

Bekijk vacature »

Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Software Developer je verantwoordelijk voor: - Je werkt voortdurend aan oplossingen voor het op afstand bewaken en besturen van oogstmachines; - Het visualiseren van gegevens in rapporten, apps of andere formaten; - Voorspellend machineonderhoud; - Taakplanning; - Je schrijft aangepaste plug-ins om gegevens te importeren of exporteren

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

Back-end Developer Java

Dit ga je doen Het (door)ontwikkelen van een zelfgebouwde applicatie in Java, Spring Framework, SQL, HTML, CSS en Javascript; End-to-end beheer m.b.t. de applicatie en koppelen van applicaties binnen het landschap; Ontwikkelen van rapportages voor de interne organisatie; Ontwikkelen van aanvullende functionaliteiten m.b.t. de applicatie; Uitvoeren van testen en code reviews. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die medische gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen en verbeteren van de kwaliteit van de zorg in heel Nederland.

Bekijk vacature »

C#.NET developer

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Testen en valideren van de ontwikkelde software. Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je gaat aan de slag met diverse technologieën en frameworks. Denk hierbij aan C#, JS frameworks, HTML, CSS, TypeScript,

Bekijk vacature »

Pagina: 1 2 volgende »

Bo az

Bo az

21/02/2008 13:56:00
Quote Anchor link
Gisteren kwam ik een presentatie tegen van Ilia Alshanetsky over beveiliging in PHP. Daar kwamen een aantal punten in voor die ik graag met jullie wil delen en benieuwd ben naar jullie mening/aanpak.

Punt 1: Session Fixation
Session fixation is een manier om een sessie te stelen waarbij de aanvaller vooraf weet welk session id het slachtoffer krijgt. (Dus niet zoals bij session hijacking waarbij het session id achteraf gestolen wordt.) Dit is toe te passen met bijvoorbeeld een link als:
jouw.bank.com/?PHPSESSID=foobar
Als het slachtoffer nu op de link klikt denkt de website dat het sessie id foobar is en gaat hier alle gegevens aan koppelen, de aanvaller kan nu simpelweg dat sessie id ook gebruiken.
De oplossing die hierbij gegeven wordt is door simpelweg na het inloggen een nieuw sessie id toe te wijzen waardoor de aanvaller geen kans meer heeft:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
session_start();
// some login code
if ($login_ok) { // user logging in
session_regenerate_id(); // make new session id
?>


Punt 2: Session Hijacking
Een veel toegepaste techniek om session hijacking (en ook helpt om session fixation) te voorkomen is een sessie koppelen aan een gebruiker. Maar hoe kan je nu een sessie aan een gebruiker koppelen? Een veelgebruikte manier daarvoor is om de sessie aan het IP adres van de gebruiker te koppelen, maar dit heeft een paar nadelen waaronder:
- Er kunnen meerdere mensen met het zelfde ip adres zijn (denk aan thuis- of sommige bedrijfsnetwerken).
- Een IP adres kan vaak wisselen.
- Een IP adres is te spoofen.
In de presentatie wordt ook een voorbeeld met een alternatief gegeven voor het koppelen van een sessie aan een ip adres, namelijk het koppelen aan de browser signature:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
$chk = @md5(
$_SERVER['HTTP_ACCEPT_CHARSET'] .
$_SERVER['HTTP_ACCEPT_ENCODING'] .
$_SERVER['HTTP_ACCEPT_LANGUAGE'] .
$_SERVER['HTTP_USER_AGENT']);
if (empty($_SESSION))
$_SESSION['key'] = $chk;
else if ($_SESSION['key'] != $chk)
session_destroy();
?>

Ook dit is niet helemaal water dicht omdat het vaker voor kan komen en door de gebruiker aan te passen is. Maar misschien is het een idee om ook nog het IP adres in de md5-hash mee te nemen?

Ik hoop dat iemand hier wat aan heeft of misschien zelfs wel andere manieren heeft om deze problemen te voorkomen/beveiligen.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
PHP hulp

PHP hulp

11/01/2025 18:45:34
 
- SanThe -

- SanThe -

21/02/2008 14:06:00
Quote Anchor link
Interessant.
Bedankt voor deze info.
 
Lode

Lode

21/02/2008 14:21:00
Quote Anchor link
Er zijn maar een paar $_SERVER vars die je kan vertrouwen.
Alle andere zijn gevoelig voor injecties.
Bijvoorbeeld:
$_SERVER['PHP_SELF'], $SERVER['HTTP_HOST'] en nog veel meer...

vermijd deze dan ook!
Dit geldt ook voor bijvoorbeeld de functie getimagesize();
eveneens een verleden van problemen en parst eigenlijk gehele images en is dus gevoelig voor eventuele code daarin...

Mijn tip:
Wat betreft vaste paden e.d. 'hard' code ze in constanten c.q const
$_SERVER['PHP_SELF'] vervangen door basename(__FILE__);

Wat je wel kan vertrouwen is $_SERVER['REMOTE_ADDR'].
Maar goed dat deed ik na alle elllende eigenlijk toch al niet meer...
En bovendien wil ik weten of het om een IPv4 of IPv6 gaat.

Mocht je dergelijke $_SERVER vars gebruiken valideer de inhoud en wees consequent!

Cross-Site-Request-Forgery
Cross-Site-Scripting
Header-Forgery

Maken allemaal gebruik van dergelijke ingangen als het kan...
Dus zoals ik al vaker heb gezegd vertouw NIKS, zelfs geen $_SERVER vars!
wat je kan moet hard coden en de rest op z'n mist valideren...

Wat betreft Session-Fixation
En dat geldt voor zoveel dingen. Commen-Pratice is gevoeligheid.
php functie setcookie(); werkt met http 1.0 headers.
Omdat miljoenen mensen IE, sessions, md5, sha1 gebruiken zijn dit ook de grootste hack doelwitten...

Dus ik heb daar al lang afstand van gedaan persoonlijk...

Tuurlijk is alles te hacken en/of matchen, maar als je het anders doet, kan je mensen wel op een heel ander 'onverwacht' spoor zetten....
Gewijzigd op 01/01/1970 01:00:00 door Lode
 
Lode

Lode

21/02/2008 14:31:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$_SERVER
['HTTP_ACCEPT_CHARSET']
$_SERVER['HTTP_ACCEPT_ENCODING']
$_SERVER['HTTP_ACCEPT_LANGUAGE']
$_SERVER['HTTP_USER_AGENT']
?>


Als je daar een Hash van maakt heb je inderdaad een goede 'fingerprint' van een gebruiker...

Dan heb je nog dingen als proxies.
welke eventueel gebruik kunnen maken van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$_SERVER
['HTTP_X_FORWARDED_FOR']
$_SERVER['HTTP_X_FORWARDED']
$_SERVER['HTTP_VIA']
$_SERVER['HTTP_PROXY']
$_SERVER['HTTP_PRAGMA']
$_SERVER['HTTP_FROM']
$_SERVER['HTTP_FORWARDED_FOR']
$_SERVER['HTTP_FORWARDED']
?>

Niet altijd het geval, maar voorkomen is beter als genezen..

En zo is er nog een hele waslijst met mogelijke $_SERVER vars voor proxies. En een aantal vaste poorten welke vaak/standaard gebruikt worden.
Dit soort bezoekers hebben bij mij iig geen rechten op 'ingelogt' blijven e.d.

Daarnaast heb je een aantal database welke te koop zijn met proxy ip's...

Er zijn genoeg lekken in Apache/php/mySql/pgSql... En ik ken er een hoop gelukkig maar zullen er altijd blijven....
 
Lode

Lode

21/02/2008 14:39:00
Quote Anchor link
nog een stap verder.... (wordt een tutorial ^^)

hashes:

http://www.php.net/hash bied alternatieven voor de eerder genoemde 'standaard' md5 / sha1 encrypties.

Daarnaast kan je gebruik maken van zogenaamde salt en pepper's...
appending / prepending opvullingen...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$salt
     = rand(100, 999);
$pepper  = rand(100, 999);
/*
dit zijn dus altijd random getallen van iig 3 cijfers!
*/


$hash = hash('whirlpool', 'random_hash'); //whirlpool is echt te zwaar!!!
$hash = substr($hash, strlen($salt), strlen($hash) - strlen($pepper));
$hash = $salt.$hash.$pepper;
?>


En zo kan je nog veel verder gaan...

Dit is iig een voorbeeld van goede hash zonder md5 / sha1 en dus ook heel anders is...

EDIT:

omdat jij de lengte van de salt / pepper weet kan je de hash matchen als je die er weer afgehaald hebt...
Anders is het gokken tot en met....
Gewijzigd op 01/01/1970 01:00:00 door Lode
 
- SanThe -

- SanThe -

21/02/2008 14:40:00
Quote Anchor link
Niet Bumpen.
Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
 
Lode

Lode

21/02/2008 14:44:00
Quote Anchor link
Ik probeer (eindelijk) een beetje serieus te converseren over php... Ben een chaoot, dus sorry van mijn kant...
"Bumpen" klinkt nogal TMF, maar was iig niet de bedoeling...
 
Bo az

Bo az

21/02/2008 14:45:00
Quote Anchor link
Laten we het ook een klein beetje bij de eerder door mij genoemde punten blijven, anders kan ik ook nog wel een aantal andere voorbeelden uit de presentatie gaan geven waar veel mensen vast nog nooit over na gedacht hebben... (tenzij daar vraag naar is natuurlijk)
 
Lode

Lode

21/02/2008 14:59:00
Quote Anchor link
Oke...

Session-Fixation en de 'finger-printing' methode die je noemt zijn inderdaad erg nuttig!

Maar het gaat nog veel verder... Sorry dat ik daarop doordraai....
 
Mark Pieper

Mark Pieper

07/03/2008 16:25:00
Quote Anchor link
Ook bedankt voor de informatie, ik zal dit proberen te verwerken in mijn laatste script. Voor die fingerprint gebruikte ik alleen het ip-adres en de browser-agent, maar dit kan ik nu aanpassen.
 
Rick

Rick

07/03/2008 17:02:00
Quote Anchor link
Lode schreef op 21.02.2008 14:59:
Oke...

Session-Fixation en de 'finger-printing' methode die je noemt zijn inderdaad erg nuttig!

Maar het gaat nog veel verder... Sorry dat ik daarop doordraai....


Nou, niet echt :P Ik vind het wel interessant om wat meer diepgang te lezen over beveiliging in php, dus van mij mag je nog wel doordraaien ;)
 
Robert Deiman

Robert Deiman

07/03/2008 17:24:00
Quote Anchor link
Ik vind het wel interessant ja, dit wist ik nog niet.. Maar hoe ik daar mee om ga:

Er wordt niet Alleen op sessie-id gecontroleerd. Inderdaad gebruik ik de browser signature al in m'n login. Daarnaast wordt in de sessie het userid opgeslagen, samen met een unieke hash (combinatie van een paar dingen met de microtijd)

In de database sla ik die unieke hash op, samen met het userid, de browsergegevens en het ip-adres. Neemt iemand met een ander ip de sessie over, dan wordt dat geblokkeerd, wordt er met een andere browser (de signature hiervan) gekeken, dan wordt dat ook geblokkeerd. Daarnaast, pas je het ID aan dan wordt ook dat geblokkeerd.

In principe is het systeem dus voor beide hacking methoden wel goed beveiligd.


Wel bedankt voor het delen van de informatie
 
Patrick Niezen

Patrick Niezen

07/03/2008 18:04:00
Quote Anchor link
Interessant topic, bedankt voor de info inderdaad! Ik zal het van het weekend nog eens goed doorlezen :-)
 
Gebruiker PHP

Gebruiker PHP

09/03/2008 20:24:00
Quote Anchor link
Als een gebruiker bij mij inlogd krijg hij/zij te maken met de volgende zaken:
Anti-bruteforce, na 3 foutieve inlogpogingen word de toegang voor 15 minuten geblokkeerd. Hij/zij kan daarna pas weer een inlogpoging doen. Stopt de gebruiker na 2 foutieve inlogpogingen dan blijven deze 15 minuten staan.

Als het inloggen lukt dan wordt er een 50 tekens lange random code gegenereerd. Als de bezoeker gekozen heeft voor een cookie dan wordt deze direct geplaatst. Heeft de bezoeker gekozen voor een sessie dan wordt het sessie-id opnieuw gegenereerd en wordt de sessie geplaatst. De cookie/sessie wordt aan het IP, de host en de useragent gekoppeld om hijacking te voorkomen. Kort gezegd wordt er dus een gelockte cookie/sessie geplaatst welke geen gevoelige gebruikers-info bevat.

Alle wachtwoorden worden gehashed met een instelbaar algoritme, ikzelf heb sha512. Ik gebruik een salt welke minimaal 6 tekens lang is.
 
Jelmer -

Jelmer -

09/03/2008 20:57:00
Quote Anchor link
Het klinkt alsof SESSION-fixation puur gebaseerd is op PHPSESSID in de REQUEST-array. Als je die kan negeren, ben je er dan niet gewoon vanaf? (m.a.w. alleen PHPSESSID in cookies toelaten, niet GET of POST)

SESSION-hjiacking kan je van buiten het netwerk voorkomen door inderdaad die fingerprint in combinatie met het ip-adres. Die laatste is lastig te vervalsen volgens mij. Vertrouw niet op X_FORWARDED of varianten, want juist die zijn heel gemakkelijk te vervalsen. Als je daarop checkt, controleer dan ook nog op REMOTE_ADDR of die niet geblokkeerd is. Van die get_ip() functies die mensen schrijven om 1 van de opties te selecteren zijn dan ook eigenlijk meer een verslechtering dan een verbetering van de veiligheid.

Ik denk niet dat je session-hjiacking vanuit het netwerk kan tegengaan. De persoon die dan aan het hacken is is ook in de positie om al het verkeer op het netwerk af te luisteren (met bijvoorbeeld WireShark) en kan gemakkelijk achter de cookies, en alle andere headers komen. Daarnaast heeft hij voor de server van de website hetzelfde adres. Misschien dat een https-verbinding het wat moeilijker maakt, maar dan nog is hij de 'man in the middle' en kan hij ook daarvan de key achterhalen. Een verbinding zoals SSH met public/private key is dan misschien nog een veilige oplossing omdat daar de key niet over het netwerk wordt verzonden. Ik denk dat die verbindingen niet zomaar af te luisteren en/of te manipuleren zijn. Maar aangezien dat niet haalbaar is met simpel HTTP en normale gebruikers, denk ik niet dat het mogelijk is om dit soort hacken vanaf de server tegen te gaan.


Wat ikzelf eerder interessant vind is hoe ver wil je gaan? Als iemand iedere dag van ip-adres wisselt, dan is lang ingelogd blijven & controleren op IP niet mogelijk. Kies je dan voor de extra veiligheid van een ip-gebonden sessie, of voor het gebruiksvriendelijke 'ingelogd blijven' van de gebruiker. Voor betaal-sites en privacy-gevoelige sites is dit een makkelijke vraag, maar voor een forum zou ik persoonlijk kiezen voor de meest gebruiksvriendelijke oplossing.

ik bedenk me net: bij iedere request een nieuw 'id', een soort van request-token opslaan is ook een oplossing. Op die manier kunnen er niet 2 personen op 1 account tegelijk bezig zijn. Nadeel is echter - en dit is een groot nadeel - dat je geen 2 browsers meer kan openen. Zou je in browser a op een link klikken, dan is de cookie met de token in browser b niet meer geldig. Voordeel is dat wanneer iemand aan bladeren is, en een hacker neemt de sessie over, de hacker (en de gebruiker) direct uitgelogd zijn zodra de gebruiker weer op een link drukt (ervan uitgaande dat de hacker de laatste pagina heeft aangeroepen en de laatste token dus in z'n bezit heeft) want de token van de gebruiker is dan al ongeldig verklaard. Token ongeldig -> sessie ongeldig -> uitgelogd.
 
Bo az

Bo az

09/03/2008 21:12:00
Quote Anchor link
Jelmer:
Het klinkt alsof SESSION-fixation puur gebaseerd is op PHPSESSID in de REQUEST-array. Als je die kan negeren, ben je er dan niet gewoon vanaf? (m.a.w. alleen PHPSESSID in cookies toelaten, niet GET of POST)

Hoeft niet natuurlijk, als het mogelijk is om javascript te injecteren in een site kan je ook een cookie plaatsen om SESSION-fixation toe te passen (al is hier dus al een extra lek voor nodig).

Jelmer:
Wat ikzelf eerder interessant vind is hoe ver wil je gaan?

Dat is een interessante vraag die ook al vaker in andere toppics voor bij is gekomen zeker als het gaat om een sessie aan een IP te binden.
Met name om deze reden vond ik het dus een aardig idee om naar de browser signature te kijken zoals in mijn eerste toppic het 2e code voorbeeld. Hierdoor hou je toch nog een stukje veiligheid over zonder aan het IP te koppelen.
Gewijzigd op 01/01/1970 01:00:00 door Bo az
 
Gebruiker PHP

Gebruiker PHP

09/03/2008 21:23:00
Quote Anchor link
Bij mijn inlogsysteem kan maximaal 1 iemand per account ingelogd zijn, ook dit zie ik meer als een voor- dan nadeel.

Ik zou toch zo ver gaan om de sessie/cookie aan het IP te koppelen, 1x per dag opnieuw inloggen is immers een kleine moeite en zorgt toch voor een relatief groot beveiligingsverschil.
 
TJVB tvb

TJVB tvb

09/03/2008 21:39:00
Quote Anchor link
1* per dag inloggen is niet erg. Maar als je op een school zit met meerdere accespoints die geregeld uitvallen en extern ook meerdere ip adressen hebben is het minder fijn.
Het gaat er dus echt wel om wat wel en niet nodig is.
 
Jelmer -

Jelmer -

09/03/2008 21:43:00
Quote Anchor link
Ivo van B. schreef op 09.03.2008 21:23:
Bij mijn inlogsysteem kan maximaal 1 iemand per account ingelogd zijn


Hoe controleer je of je met 1 of meerdere personen op 1 account te maken hebt? M.a.w. wat scheidt de personen van elkaar?

Boaz schreef op 09.03.2008 21:12:
Dat is een interessante vraag die ook al vaker in andere toppics voor bij is gekomen zeker als het gaat om een sessie aan een IP te binden.
Met name om deze reden vond ik het dus een aardig idee om naar de browser signature te kijken zoals in mijn eerste toppic het 2e code voorbeeld. Hierdoor hou je toch nog een stukje veiligheid over zonder aan het IP te koppelen.


Eigenlijk zou iemand eens moeten testen welke headers er allemaal verzonden worden, welke eigenschappen hoe uniek zijn. Volgens mij valt dit toch tegen, al is het wel effectief wanneer iemand het niet verwacht (amerikaanse hacker die nederlander probeert te hacken weet niet waarom het mislukt)
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 
Gebruiker PHP

Gebruiker PHP

09/03/2008 21:58:00
Quote Anchor link
@ Jelmer
Elke keer als er eimand inglogd worden de huidige inloggegevens overschreven.
 
Jelmer -

Jelmer -

09/03/2008 22:28:00
Quote Anchor link
Maar daar voorkom je SESSION-hjiacking nog niet mee. Je weet nooit zeker hoeveel mensen er van die ene sessie gebruik maken.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer -
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.