Session Fixation

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior C# Developer

UPS Nederland zoekt een Senior Developer C# * Remote werken mogelijk Wil jij werken aan complexe IT-systemen bij een van de grootste logistieke werkgevers ter wereld? Als ontwikkelaar bij UPS werk je aan opkomende technologieën en DevOps processen om ervoor te zorgen dat onze logistieke processen zo soepel en efficiënt mogelijk verlopen. Dit ga je doen Je bent betrokken bij alle facetten van applicatieontwikkeling. Je bent betrokken bij alle facetten van applicatieontwikkeling: van ontwerpen en bouwen tot testen en implementeren. Je levert ontwerpen die passen bij de onderliggende frameworks en concepten, bouwt efficiënte en testbare code, identificeert en integreert modulaire

Bekijk vacature »

Ontwikkelaar

Wij zoeken een capabele Magento developer, die mee willen werken aan het realiseren van mooie webshops. Wij zoeken een creatief, enthousiast, leergierig, gezellig en capabel persoon. Zelfstandig kunnen werken. Goed kunnen communiceren. De wil hebben om verder te groeien. Als Magento developer werk je samen met je team aan de allerbeste webshops voor onze opdrachtgevers. Wat ga je doen als Magento developer? Ontwikkelen van webshops in Magento Onderhoud plegen aan bestaande webshops Behalve kennis van Magento heb je ook kennis van Javascript, HTML, CSS Je bent in staat om zowel zelfstandig als in teamverband te werken Je bent in staat

Bekijk vacature »

Front-end Ontwikkelaar

Bedrijfsomschrijving Bij het accepteren van dit aanbod kom je terecht binnen een veelzijdige organisatie waar een goede sfeer hangt. Zij zijn gewend dagelijks met elkaar te lunchen en ruimte is voor een potje Mario. Als Front-end ontwikkelaar ga je je op projectbasis bezighouden met het ontwikkelen van content voor diverse opdrachtgevers. De projecten waar je aan gaat werken zullen verschillende qua omvang. Hierbij kan je rekening houden met een gemiddelde doorlooptijd van een half jaar, waarbij er meerdere projecten naast elkaar kunnen lopen. Naast ontwikkeling aan de Front-end ga je ook een rol spelen bij de ontwikkeling aan de back-end.

Bekijk vacature »

Senior Android Developer en werken met domotica

Bedrijfsomschrijving Deze relatief kleine organisatie is gespecialiseerd in 'woning automatisering' en domotica. Ze hebben een eigen product op de markt wat zich onderscheidt van de bestaande producten op dat gebied. Alle software en hardware wordt intern ontwikkeld waardoor ze gelijk kunnen reageren op de steeds wijzigende wensen van klanten. De organisatie kenmerkt zich door een gezellige werksfeer met een professionele uitstraling. Op het kantoor is zelfs een eigen woonkamer ingericht waarin alle mogelijkheden van het product worden getoond. Functieomschrijving In deze functie ga je aan de slag in een leuk team van developers die zowel zelfstandig als samen een topproduct

Bekijk vacature »

Senior C# .NET Core Developer / Azure / Docker / K

Bedrijfsomschrijving Voor onze klant, een groot en bekend bedrijf in regio Eindhoven in de zakelijke dienstverlening, zoeken wij een Senior .NET Developer die wil werken aan diverse interne applicaties waar duizenden medewerkers mee werken. Zo worden er webportalen, CRM systemen en document management systemen in-house ontwikkeld. Ook worden er maatwerk-schillen om ingekochte pakketten gebouwd. Er wordt al jaren op het Azure platform gewerkt waarbij alle mogelijkheden worden benut zoals Azure Data Lake / Factory, gecombineerd met open source technieken. Als ontwikkelaar ben je vooral bezig met C#, MVC en Javascript frameworks. De organisatie omschrijft zichzelf als informeel en ambitieus met

Bekijk vacature »

Full Stack Java Developer - Infrastructure

Ben jij een ontwikkelaar die wil bijdragen aan de energietransitie? Lees dan verder! Wat ga je doen? Als Full Stack Java Ontwikkelaar draag je verantwoordelijkheid voor het gehele proces van het omzetten van wensen, problemen of vragen naar concrete oplossingen. Integratie, testen, vastleggen van kennis en beslissingen, problem management en automation zijn onderdeel van je takenpakket in SAFE of DevOps gestuurde omgevingen. Als ontwikkelaar krijg je alle mogelijkheden om je technisch verder te ontwikkelen en samen te werken met gedreven collega's. Wat breng je mee? Je hebt gedurende 1 tot 2 jaar een basis opgebouwd in applicatie ontwikkeling met .Net

Bekijk vacature »

Backend .NET Developer C# Voetbal

Bedrijfsomschrijving Binnen deze organisatie in de regio Den Haag zal je als .NET Developer terecht komen in een multidisciplinair team met 5 andere Programmeurs. In jouw rol ben je verantwoordelijk voor het ontwikkelen en optimaliseren van mobiele applicaties met meer dan 4 miljoen gebruikers wereldwijd. Als Backend Developer zal je dagelijks werken met C#, .NET Core, Kubernetes en een SQL Database. Voor het onderling communiceren van de microservices wordt gebruik gemaakt van RabbitMQ. Je krijgt energie van technische uitdagingen en je werkt graag samen. Verder zul je in vele projecten deelnemen, zorg je voor nieuwe features, los je diverse bugs

Bekijk vacature »

Fullstack .Net (Core)/C# Developer zet zich in voo

Voor een organisatie gespecialiseerd in het ontwikkelen van software voor dierenartspraktijken ben ik op zoek naar Fullstack .Net (Core)/ C# Developers. De organisatie, 15 jaar geleden opgericht heeft een internationale klantenkring met meer dan 10.000 praktijken. Er hangt een nuchtere en familiaire sfeer, waar je je snel in thuis zal voelen. In 3 Scrum teams wordt er gewerkt aan her/doorontwikkeling van de dierenartspraktijksoftware en aanverwante tools. Je focus ligt bij het design, programmeren, unit testen en deployen van van nieuwe functionaliteiten. Waarbij je voor 80% bezig bent in de backend en 20% in de frontend. Wat moet je kunnen? -

Bekijk vacature »

.NET Developer / C#

Bedrijfsomschrijving werken bij een organisatie waar je met het volgende in aanraking komt: High-intensity dataverkeer, meer dan 2,7 miljard berichten per jaar; Development aan .NET applicaties die maandelijks miljoenen euro's verwerken; Salaris als developer tot bijna 70.000 euro op jaarbasis; Geen partij in de omgeving van Tilburg die zo'n complex .NET applicatielandschap heeft; Werken aan meer dan 50 diensten, verdeeld over 10 Scrum teams; Focus op o.a.: C# en ASP.NET in een Agile organisatie; Elk kwartaal een week lang verplicht met nieuwe technieken/tooling werken; Meer dan 40 ervaren .NET ontwikkelaars als collega's; Mogelijkheid om 32 of 36 uur te gaan

Bekijk vacature »

Java Developer

Bedrijfsomschrijving You will work at a large and progressive financial organization with offices in the Netherlands and abroad. You work within the domain that is responsible for delivering several daily banking processes used by all our customers. The processes are fixed around life cycle management for the current accounts and packages, such as opening and closing an account. Your colleagues are all driven Engineers, who like to stay up-to-date with the latest technologies. You are going to work in a team that believes in the DevOps way of working. As Developer you are responsible for the technical structure of several

Bekijk vacature »

Azure developer / Big Data

Bedrijfsomschrijving Als Azure Developer ga je in een team van experts aan de nieuwste digitale technologieën werken om klanten over de hele wereld te ondersteunen met het ontwerpen van slimme processen voor havens, steden, luchthavens en gebouwen! Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning zorgen jij en je team voor inzichten gevaren en klimaat risico’s voor steden, luchthavens, gebouwen en meer. Als Azure Developer met Big Data ervaring ga je aan de slag met diverse inhouse projecten en pas je jouw kennis toe in verschillende fases van de software development life

Bekijk vacature »

Senior C# Developer

UPS Nederland zoekt een Senior Developer C# * Remote werken mogelijk Wil jij werken aan complexe IT-systemen bij een van de grootste logistieke werkgevers ter wereld? Als ontwikkelaar bij UPS werk je aan opkomende technologieën en DevOps processen om ervoor te zorgen dat onze logistieke processen zo soepel en efficiënt mogelijk verlopen. Dit ga je doen Je bent betrokken bij alle facetten van applicatieontwikkeling. Je bent betrokken bij alle facetten van applicatieontwikkeling: van ontwerpen en bouwen tot testen en implementeren. Je levert ontwerpen die passen bij de onderliggende frameworks en concepten, bouwt efficiënte en testbare code, identificeert en integreert modulaire

Bekijk vacature »

Software Developer Geospatial Technology

Would you like to be part of an innovative, inspiring and international environment? Are you excited to work in a Geo-ICT, Asset Management, Energy, Water & Telecom industry and do you have strong programming skills? The job as Experienced GIS Software Developer offers the challenge you are looking for! Software Developer Geospatial Technology 32-40 hours per week Your Job As Experienced GIS Consultant you will work in an international team on projects at leading customers in the Netherlands. You will deal with design solutions in which emerging technologies play an important role. Along with your colleagues and customers you will

Bekijk vacature »

Front-end Developer / Angular

Bedrijfsomschrijving Als Front-end Developer ga je in een DevOps team aan de nieuwste digitale technologieën werken om klanten over de hele wereld te ondersteunen met het optimaliseren van (afval)waterzuivering systemen. Door middel van real-time data in combinatie met voorspellende analyses, AI, Deep Learning en Machine Learning zorgen jij en je team voor inzichten die ernstige milieu en watervervuiling weten te voorkomen. Jouw ervaring als Front-end developer zorgt ervoor dat deze klanten altijd de nieuwste gebruikersinterfaces hebben en zo makkelijk mogelijk deze data kunnen lezen. Zo is de organisatie al meer dan honderd jaar actief bezig met het aanpakken van confrontaties

Bekijk vacature »

Opleidingstraject tot Low Code Developer Cross Bor

Opleidingstraject tot Low Code Developer Cross Border Solutions Den Haag HBO/WO IT Professional "Wij zetten Mendix en E-magiz in voor onze kritieke processen om de favoriete bezorger te zijn. We zoeken hiervoor Developers in spe die gaat leren ontwikkelen in Mendix en E-magiz voor het uitbreiden van onze Cloud IT-platformen en softwareoplossingen voor onze belangrijkste internationale klanten. Dit vraagt om analytisch vermogen, creativiteit, klantgerichtheid en uitstekende communicatie skills". Wat ga je doen? Als onze nieuwe Junior Developer word je onderdeel van de digitale transformatie van onze internationale business unit naar een e-commerce dienstverlener. PostNL’s cross border unit (CBS) groeit in snel tempo

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/05/2021 16:23:19
 
- 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 http://www.phphulp.nl/imgs/forum/edit.gif 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.