Session Fixation

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Graduate Class IT Integratie Specialist -

Graduate Class IT Integratie Specialist - Start 1 maart 2022 Categorie:Business Consulting, Strategy and Digital Transformation Regio/Locatie:Randstad, Netherlands Vacaturenummer:J1021-3560 Type dienstverband:Full Time Functiebeschrijving: Ben jij recent afgestudeerd of studeer jij dit jaar af aan een bèta gerelateerde HBO of WO opleiding? En wil jij de eerste stappen zetten richting een carrière in de IT? Bij CGI bieden we met Graduate Class IT Integratie Specialist dé kans om je verder te ontwikkelen binnen de verschillende onderdelen van data & IT integratie! Wat houdt Graduate Class IT Integratie in? In de Graduate Class van 8 weken (volledig doorbetaald) bouw je eerst aan

Bekijk vacature »

(junior) PLC programmeur

Sta jij klaar om een bijdrage te leveren aan de verbetering van het productieproces? Dan is dit een uitdagende en veelzijdige functie die bij je past! Functie Het team waarin je werkt is verantwoordelijk voor het project vanaf het concept tot en met de nazorg. Denk hierbij aan het maken van offertes, opstellen van schema's, doen van bestellingen en programmeren van de PLC's; Je werkt hoofdzakelijk zelfstandig, onderhoudt de communicatie met de klant, je collega's op andere projecten en met de leveranciers; Je helpt bij het verder moderniseren en automatiseren van de huidige productielijnen; Onderhouden en optimaliseren van de software;

Bekijk vacature »

DevOps - Well Funded Scale Up - Expanding a DevOps

Do you want the autonomy to build a DevOps function in your own image? You’ll be coming into a Scale-Up with a view of taking a hands-on approach to building the DevOps function for the entire business. You’ll have one direct report, but don’t worry, the managerial side is left to the CTO. You’ll help this individual grow and develop to support you. Your primary focus will be to look at “as is” and how you can build on this to further enhance the services offered to both customers (internal and external) through upgrades or new technologies. Here’s why you

Bekijk vacature »

Java Developer / DevOps / Overheid @ Leeuwarden

2021-11-17 iSense Java Developer / DevOps / Overheid Ben jij op zoek naar een (her)start van jouw carrière binnen de ICT? Wil jij je graag verder ontwikkelen en zie je het zitten om aan de slag te gaan bij een van de grootste overheidsorganisaties van Nederland? Lees dan snel verder! ISDA51724 Organisatie De organisatie is ambitieus en innovatief met continu aandacht voor verbetering. De combinatie van innovatiekracht, kennis en deskundigheid zorgt voor een prominente positie binnen de overheid. Ruim 1200 gedreven medewerkers zorgen ervoor dat de taken op een juiste wijze, ondersteund door adequate ICT en binnen de beschikbare middelen

Bekijk vacature »

Python Developer/Teamlead

De vacature We zijn op zoek naar een Python/Django developer die ons Scrum team komt versterken. Je wordt enthousiast van leesbare en goed geteste code, heldere datamodellen, mooie REST en GraphQL API's, pijnloze deploys en een perfecte aansluiting op onze interactieve React frontend. Je werkt mee aan de Python backend van ons mooie Jouw Omgeving platform, in een hecht team dat veel impact maakt. Binnen dit team laat je je technische expertise en leiderschapskwaliteiten zien: je zet de technische koers uit en neemt je collega’s hierin mee. Termen als “lead by example”, “meewerkend voorman” en “meritocracy” spreken je aan. Bij

Bekijk vacature »

Lead Mendix Developer

Heb jij passie voor software ontwikkeling en vind je het leuk om eindgebruikers snel te helpen door het realiseren van web en mobiele applicaties? Vind jij het leuk om junior ontwikkelaars te begeleiden en te enthousiasmeren door het delen van je kennis? Heb jij de ambitie om door te ontwikkelen naar een Full Stack ontwikkelaar? Dan is dit jouw topbaan! Met meer dan 100 bedrijven in verschillende product-marktcombinaties is geen dag hetzelfde bij VDL. Als Lead Low Code Developer ontwikkel je met Mendix nieuwe functionaliteiten voor bestaande applicaties. Applicaties waar eindgebruikers graag mee werken. Daarnaast zijn er tal van nieuwe

Bekijk vacature »

Angular Front-end Developer

Angular Front-end Developers Technologiebedrijf gespecialiseerd in (Cloud-native) software-development, consultancy en training. AWS Select Consulting Partner en Microsoft Azure Gold Partner. Wij werken voor opdrachtgevers in de sectoren FinTech, HealthTech, Retail, Industrie en Overheid, dus variatie gegarandeerd! Wat maakt ons uniek? Onze focus op (Cloud-native) software-development in combinatie met onze persoonlijke benadering van werknemers en opdrachtevers, onze no-nonsense cultuur en de bijna onbeperkte ontwikkelingsmogelijkheden. Wij zijn op zoek naar Angular Front-end Developers met creativiteit en ervaring in front-end en mobile web-ontwikkeling. Je werkt vanuit onze vestigingen in Amsterdam, Apeldoorn, Eindhoven of Hengelo aan aansprekende projecten. Op zoek naar een zelfsturende en

Bekijk vacature »

Oracle Developer / Apex @ Arnhem

2021-11-08 iSense Oracle Developer Apex Do you have experience with Apex, PL-SQL and/or Oracle? Are you a developer with some years of experience and looking for a dynamic organization to join? Then keep reading and apply! ISVI51647 Organisatie As an Oracle Developer you will join an organization who offers the logistic solution for some of the known retail chains all over the world. You can find the clients that they work for almost in every shoppingstreet; there is a big chance that you have something from the different brands in your possesion! The total logistic process that comes along with

Bekijk vacature »

Junior Fullstack .NET Developer @ Regio Eindhoven

2021-10-19 iSense Junior Fullstack .NET Developer Heb je onlangs een hbo-, wo-opleiding of een minor richting de IT afgerond OF heb jij middels cursussen je sporen verdiend in het programmeren en wil je graag aan de slag als Fullstack .NET Developer? Lees dan snel verder! Want in januari/februari 2022 start de Experis Academy weer met een leerprogramma waarin IT-experts je opleiden tot developer met als specialisatie .NET. Dit allemaal met een salaris en een vooruitzicht op een baan bij een topwerkgever. ISLE51108 Locatie Eindhoven en omstreken. Wat ga je doen tijdens het Fullstack .NET Developer ontwikkeltraject? Vanaf januari/februari 2022 krijg

Bekijk vacature »

Technisch Developer

Werken aan innovatieve oplossingen die onmisbaar zijn voor iedereen en dus ook voor jou als reiziger? Als Technisch Developer bij InTraffic lever jij een waardevolle bijdrage aan de reizigerservaring! • Hoe? Door te werken aan complexe technische vraagstukken met behulp van C++. • Waarom? Om de veiligheid en doorstroom op het spoor te kunnen waarborgen. Je draagt bij aan de mobiliteit van nu en ook die van de toekomst. • Waar? Bij InTraffic in Nieuwegein, dé IT-specialist op het gebied van verkeer en vervoer. • Met wie? Je werkt in een scrumteam. Onze teams variëren van 3 tot 9 professionals.

Bekijk vacature »

Applicatiebeheerder

APH Group is een exportbedrijf van machines en installaties ten behoeve van de professional in aardappelen en vollegrondsgroenten. De activiteiten zijn onderverdeeld in 4 knowledge centers: Field equipment, Irrigation, In-store solutions en Engineering. Het werkgebied van APH Group ligt met name in Rusland, Centraal- en Oost Europa, China, Turkije en Latijns Amerika. APH Group heeft een tiental entiteiten in verschillende van genoemde landen ten behoeve van de marketing, sales en aftersales service, welke rapporteren aan en ondersteund worden door het hoofdkantoor in Heerenveen. Sinds 2009 werken APH Group en enkele entiteiten met SAP Business One. Voor het beheren en optimaliseren

Bekijk vacature »

Python Developer @ Utrecht

2021-09-06 iSense Python Developer Do you like working with Data? Do you have experience in Python development? Would you like to implement data modelling and processing applications on top of Azure Native Services? Search no further because we have the vacancy for you! ISKE50429 Organization We are looking for several Python Developers who enjoy programming. Together with your team you will design and develop maintainable systems that allow the organization to calculate it’s credit risk. You will have opportunity to remain abreast of the latest market and technological developments and incorporate these in the execution of your development work. The

Bekijk vacature »

Service Assurance Manager

Service Assurance Manager Categorie: Project Management Regio/Locatie: Rotterdam, Zuid-Holland, Netherlands Vacaturenummer: J1021-4160 Type dienstverband: Full Time Functiebeschrijving: Als Service Assurance Manager werk je als Consultant voor een van onze klanten in de Oil & Gas industrie. Je bent de adviseur voor enerzijds de projectmanager en anderzijds de beheerorganisatie. En je borgt dat de door het project opgeleverde functionaliteit goed landt in de beheerorganisatie. Wat ga je doen? Het service assurance proces heeft als doel om op gestandaardiseerde wijze bij te dragen aan een betrouwbare, veilige en betaalbare support- en beheeromgeving. Jouw verantwoordelijkheden: • Het inregelen van de transitie naar support-

Bekijk vacature »

Dynamics NAV / 365 BC Developer @ Ede

2021-10-27 iSense Dynamics NAV / 365 BC Developer Als Dynamics 365 BC Developer aan de slag met maatwerkoplossingen bij een software development club die internationaal zeer succesvolle applicaties bouwen voor de agrarische sector? Lees dan nu verder! ISHU48459 Organisatie Als Dynamics Business Central Developer kom je te werken bij een organisatie in regio Ede die gespecialiseerd is in het ontwikkelen en implementeren van software. Zo hebben ze een eigen ontwikkelde applicatie in de markt gezet voor de agrarische sector die internationaal zeer succesvol is en waar grote vraag naar is. Door deze software worden klanten op een slimme manier ondersteund

Bekijk vacature »

Full stack developer @ Amsterdam

2021-10-18 iSense Full stack developer Wil jij werken in een organisatie die verschillende grote organisaties bedient? Ben je een medior/senior developer en wil je graag doorgroeien naar een meer overkoepelende rol en meedenken over de architectuur? Dan is dit een mooie kans om jouw expertise op de kaart te zetten! ISZ50925 Organisatie De organisatie is een bureau welke websites en mobiele applicaties bouwt voor verschillende toonaangevende organisaties. Hierbij richten zij zich voornamelijk op de sectoren leisure, overheid en zorg. De sfeer intern kenmerkt zich door informaliteit, gezelligheid en ambitie. Ze werken dag in dag uit samen om mooie producten op

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

29/11/2021 16:23:10
 
- 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.