Session Fixation

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET developer voor innovatieve applicaties gez

Bedrijfsomschrijving Deze werkgever houdt zich al ruim 20 jaar bezig met het ontwikkelen van innovatieve software en dat willen ze graag nog lang doorzetten. En dat merk je ook als je als .NET developer hier aan de slag gaat. De applicaties worden continu doorontwikkeld met altijd als uitgangspunt dat zowel de kwaliteit als het gebruikersgemak van hoog niveau is. Het bedrijf telt inmiddels ruim 25 medewerkers waarvan meer dan de helft op de development afdeling werken. Meer weten over deze werkgever? Mail naar [email protected] of bel 0657578548 Functieomschrijving Je komt te werken in een Scrum team met andere .NET developers

Bekijk vacature »

Back-End Developer in Laravel / PHP

Functie omschrijving Wij zijn op zoek naar een Medior PHP Laravel Developer voor een gaaf bedrijf in de omgeving van Amsterdam! Voor een enthousiast team die zich graag bezig houdt met softwareontwikkeling zijn wij op zoek naar versterking. Je werkt in een klein ontwikkelteam en bent zeer betrokken bij alle aspecten van de softwareoplossingen. Van het ontwerpen tot de oplevering. Binnen deze functie ga je aan de slag met het aanpassen, verbeteren en vernieuwen van de logistieke oplossingen. Je krijgt veel te maken met koppelingen naar systemen en de verzoeken van de klant. Je komt terecht in een team, waarbij

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

C# developer

Functie omschrijving We are looking for a dutch native speaker Ik ben op zoek naar een back-end developer, die met name kennis & ervaring heeft van de programmeertaal C#. Jij gaat aan de slag bij een topspeler in de logistieke sector, die zich behalve met logistiek, ook bezig houdt met softwareontwikkeling. Welke taken komen hierbij kijken? Je gaat desktop- en webapplicaties onderhouden en optimaliseren, waarin je werkt met o.a. C#, ASP.NET, SQL Server en T-SQL. Je hebt regelmatig klantcontact om de wensen in kaart te brengen en te evalueren over de huidige draaiende applicaties. Je implementeert nieuwe functionaliteiten toe aan

Bekijk vacature »

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »

Lead javascript developer Node.js React

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

.Net ontwikkelaars voor de zorgsector

Bedrijfsomschrijving Voor onze klant in de omgeving van Zwolle zijn wij op zoek naar een ervaren .Net ontwikkelaar, bij voorkeur met ervaring binnen de belangrijkste sector van Nederland, namelijk: de zorgsector. Deze internationale organisatie ontwikkelt software voor de zorgsector. Er werken zo'n 25 medewerkers hard aan een oplossing die gebruikt wordt door heel Nederland. Er heerst een informele sfeer waarbij er altijd ruimte is voor een grapje. Je collega's zijn stuk voor stuk sterke ontwikkelaars vanuit verschillende achtergronden en met verschillende leeftijden. Je komt hier terecht in een organisatie die zich hard inzet om de zorgsector te verbeteren. De mogelijkheden

Bekijk vacature »

Software Developer C# - Deventer

Software Developer C# – Deventer Bijdragen aan de toekomst van het onderwijs! Ben jij op zoek naar een dynamische omgeving waar vol enthousiasme wordt gewerkt aan software voor interactieve dashboard- en analysetoepassingen ter verbetering van het onderwijs? Dan zijn wij het bedrijf voor jou! TIG is een bedrijf met een informele en ondernemende werksfeer, waarbij goede ideeën snel leiden tot concrete acties. Wij zijn een software ontwikkelorganisatie en focussen ons op het ontwikkelen en implementeren van oplossingen voor het leveren van managementinformatie, datavisualisatie en analyses voor het onderwijs. Met onze dashboard- en analyseoplossingen zetten scholen gegevens om naar betekenisvolle informatie.

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 »

Front-end Developer

Gezellige team, passie en een groene toekomst! Lees hier de vacature van Front-end Developer bij All in Power! All in power heeft zich tot doel gesteld écht bij te dragen aan de energietransitie. Dit doen wij door de markt voor energie volledig op zijn kop te zetten. Producenten van schone (wind- of zonne-)energie verkopen via ons platform hun energie rechtstreeks aan gebruikers. Of dit nu huishoudens, bedrijven of bijvoorbeeld laadpalen zijn ons platform maakt het uitwisselen van energie mogelijk. Zo maken we de business case van onze klanten veel sterker en loont het om (meer) te investeren in vergroening voor

Bekijk vacature »

Senior Front-end developer (React)

Functie Met een ontwikkelafdeling van ruim 20 collega’s is dit zo ongeveer de helft van alle medewerkers. De software(ontwikkeling) is dan ook de drijvende kracht binnen de organisatie. Ze werken aan het verbeteren dan de bestaande, maar zeker ook nieuwe producten. De software bestaat uit verschillende (React) webapplicaties, maar ook een mobile (React native) app. Hierdoor kom je met verschillende uitdagingen in aanraking en is Mobile kennis natuurlijk mooi meegenomen. De software wordt door vele duizenden professionals dagelijks gebruikt en bevatten grote hoeveelheden data. Aan het team de uitdaging om hierin de best mogelijke gebruiksvriendelijkheid neer te zetten door gebruik

Bekijk vacature »

Medior/senior PHP ontwikkelaar E-commerce

Functie Het software development team bestaat momenteel 5 scrum teams . Ieder team heeft een eigen SCRUM Master en eigen tester. Zij werken voornamelijk in PHP en met hun eigen geschreven framework wat Symfony based is . Jij bent samen met je collega’s verantwoordelijk voor het interne softwaresysteem en alle projecten die daar omheen lopen. Alles wat jij ontwikkelt, wordt direct toegepast en uitgerold (wereldwijd). Dit maakt jouw werk tastbaar en uitdagend! Een greep uit jouw werkzaamheden: Toevoegen en ontwikkelen van nieuwe functionaliteiten Logistieke software ontwikkelen voor intern gebruik Tientallen gigabytes aan data inzichtelijk maken Altijd op zoek gaan naar

Bekijk vacature »

Delphi Programmeur

Functie omschrijving Onze opdrachtgever is gespecialiseerd in kantoor-bedrijfssoftware en zit gevestigd in omgeving Numansdorp. Als programmeur ben jij bij dit bedrijf met het volgende bezig; Je vertaalt technische en functionele ontwerpen naar kwalitatieve software. Je ontwikkelt, ontwerpt en test software. Je maakt daarbij veel gebruik met de volgende tools & technologieën: Delphi 10.3 (Rio), QuickReport 6. Je krijgt in deze rol veel vrijheid en verantwoordelijkheid. Je levert projecten van A - Z op, en werkt daarbij projectmatig en gestructureerd. Bedrijfsprofiel Dit bedrijf richt zich op maatwerk software oplossingen. Deze software oplossingen worden ingezet in de financiële branche. Het betreft een

Bekijk vacature »

Experienced Lead Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Delft Vacature ID: 13301 Introductie We are seeking a Lead Java Developer for our team in the area of Delft. You will develop an application used exclusively by the engineers and geologists for site characterizations, which imports raw field and laboratory measurements for further processing, integration, ground modelling, and geotechnical analysis and reporting. The client/server application is entirely written in Java, and the server is hosted in the Amazon cloud, utilizing frameworks such as Spring and Hibernate, and connected to an MS SQL Server RDS instance. There is a trend towards using more

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

17/02/2025 09:41:35
 
- 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.