Sessie beveiligen tegen hijacken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front-end Developer (HTML/CSS, Angular/React/Vue,

Functie Je zal aan de slag gaan in een klein, hecht team met front-end development experts die de ambitie delen mooi werk te leveren. Samen met hen zal je werken aan het gebruiksvriendelijk en interactief maken van complexe webapplicaties, websites en mobile apps. Je levert klanten wat ze nodig hebben terwijl je actief aan jezelf blijft werken met de ondersteuning vanuit je werkplek. Talen als Javascript programmeer jij vloeiend en je hebt kennis van frameworks als React en Angular. Je zou je het liefst nog veel meer ontwikkelen in verschillende front-end talen. Deze kennis deel je graag met je collega’s,

Bekijk vacature »

Senior Developer Betty Blocks Blauwe Haven Rotterd

Functieomschrijving Voor de Politie zijn wij opzoek naar een Senior Developer Betty Blocks Blauwe Haven Rotterdam. De politieorganisatie heeft jaarlijks te maken met een aanzienlijk aantal politiemedewerkers die vanwege mentale overbelasting niet of beperkt inzetbaar zijn. De Blauwe Haven Rotterdam ondersteunt deze politiemedewerkers in hun herstel en re-integratieproces. De huidige digitale systemen van de Politie bieden onvoldoende ondersteuning in het herstel- en re-integratieproces van politiemedewerkers. Zowel voor de politiemedewerkers als voor de organisatie. Politiemedewerkers worden buitengesloten, waardoor zij eigen regie verliezen. Begeleiders kunnen de voortgang van de medewerkers niet goed monitoren. Management beschikt niet over de mogelijkheid trends te signaleren

Bekijk vacature »

(Junior) PHP Ontwikkelaar bij een retail bedrijf i

Bedrijfsomschrijving Ben jij een ervaren PHP ontwikkelaar met een passie voor retail en ICT? Wil jij werken in een team dat zich bezighoudt met het ontwikkelen van uitdagende applicaties voor een groot retailbedrijf in Delft? Dan zijn zij op zoek naar jou! Functieomschrijving Als PHP Ontwikkelaar werk je in een team aan de ontwikkeling van applicaties die door de gehele organisatie worden gebruikt. Je bent verantwoordelijk voor het ontwikkelen, testen en implementeren van deze applicaties. Je werkt hierbij nauw samen met andere ontwikkelaars, projectmanagers en stakeholders binnen de organisatie. Je taken bestaan onder andere uit: Ontwikkelen van nieuwe functionaliteiten en

Bekijk vacature »

Laravel Developer

Functie omschrijving Voor een gave organisatie in de buurt van Den Bosch zoek ik een PHP developer. Het is van belang dat je kennis/ervaring hebt met het framework Laravel. Jij gaat in deze functie software applicaties ontwikkelen. Deze software projecten zijn heel divers, en deze organisatie maakt software, van A tot Z. Klanten kunnen in elke sector werkzaam zijn, van profit tot non-profit. Andere taken zijn onder andere: documentatie schrijven over applicaties/uitleg geven over software en applicaties/ klantcontact over bestaande applicaties/applicaties optimaliseren. Bedrijfsprofiel Deze organisatie zit in de regio van Den Bosch en is een klein bedrijf. Er werken circa

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Voor een opdrachtgever in omgeving Moordrecht zijn wij op zoek naar een programmeur. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op

Bekijk vacature »

Junior Java Developer

Dit ga je doen Je ontwikkelt innovatieve, maatschappelijk belangrijke applicaties; Je implementeert nieuwe features; Je gaat in gesprek met eindgebruikers en designers om de applicaties continu te finetunen; Je draait mee in een professionele Agile/Scrum omgeving. Hier ga je werken Onze klant is een internationale organisatie gevestigd in de omgeving van Amsterdam. Ze staan zeer goed bekend in de markt door hun innovatieve dienstverlening op IT gebied en hun gepassioneerde werknemers. Voor hun inspanningen op het gebied van IT hebben ze meerdere prijzen gewonnen! Onze klant is onderdeel van een Corporate werkgever en heeft zelf 300 mensen in dienst. Om

Bekijk vacature »

Ervaren Full stack developer

Functie omschrijving Ben jij op zoek naar een uitdagende in-house functie bij een bedrijf met enorme groeipotentie? Ben jij op zoek naar een nieuwe uitdaging vol afwisseling en gezelligheid? Dan ben je bij dit bedrijf aan het juiste adres! Wij zijn in omgeving Breda op zoek naar een ervaren full stack developer. Je gaat werken voor een zeer gewilde werkgever met goede arbeidsvoorwaarden. Je krijgt een plekje in het jonge IT team, work hard, play hard is hier duidelijk het motto! Jouw werkzaamheden zien er als volgt uit: Jij bent verantwoordelijk voor het ontwerpen en bouwen van webapplicaties. Je bent

Bekijk vacature »

JAVA Programmeur

Bedrijfsomschrijving Functieomschrijving We zoeken per direct enthousiaste software engineers die ons team komen versterken.We werken in DevOps teams met een sterk gevoel voor verantwoordelijkheid. Er wordt nauw samengewerkt met ons Business analyse team (BAT), met onze uitvoerende medewerkers en met de DevOps teams onderling binnen het domein. Het liefst hebben we veel en vaak interactie met onze interne en externe eindgebruikers om zo de juiste dingen te maken. We werken multidisciplinair in een dynamische omgeving. Achtergrond opdracht De Businesseenheid Examens is verantwoordelijk voor de logistiek van de staatsexamens Voortgezet (speciaal) onderwijs, Nederlands als 2e taal en schoolexamens. In het kader

Bekijk vacature »

Als Front-end developer samenwerken met de beste c

Functie Momenteel zijn we voor één van de projecten bij hun key partner, een voorloper in de energiesector, op zoek naar gedreven Front-end developers. Ze nemen de lead in dit project en werken uitsluitend met vooruitstrevende technologieën. Ze verwachten dat de technologie die hier wordt ontwikkeld uiteindelijk door veel meer grote corporates, in verschillende sectoren zal worden toegepast. Dit is dan ook een heel uitdagend project om aan mee te gaan werken. Het team bestaat o.a. uit User Experience designers, Data Scientists en Software Engineers. De consultants en ontwikkelaars werken volgens de Design Thinking methode waarbij de eerste stappen van

Bekijk vacature »

Hands-on Solution Architect / Software Architect (

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Solution Architect / Software Architect op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je werkt samen met gedreven DevOps teams, bestaande uit frontend, backend en middleware developers, testers, UX-designers. Samen met de teams ben je continu op zoek naar de beste oplossingen voor onze klanten. Als Solution Architect onderzoek

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar start jij in één van onze vier scrumteams. Met 30 ontwikkelaars werk jij aan de doorontwikkeling van ons core product. Ook werkt jouw team aan maatwerkoplossingen op aanvraag van de klant en op projectbasis. Wij vinden het erg belangrijk dat onze ontwikkelaars met plezier naar werk gaan. Een deel hiervan ligt uiteraard bij jezelf, als jij ontwikkelen niet leuk vindt, ben jij bij ons echt aan het verkeerde adres. Jouw team bestaat namelijk uit een groep gepassioneerde vakidioten die dit werk doen omdat dit eerst een hobby was! Daarnaast wordt er intern rekening gehouden met

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 Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

Implementatie specialist

Standplaats: Honselersdijk Aantal uren: 32 – 40 uur Opleidingsniveau: HBO werk- en denkniveau Ben jij de implementatie expert die onze klanten helpt bij het integreren van de Greencommerce software? Ben jij daarnaast communicatief sterk, denk jij graag in verbeteringen en heb je ervaring met ICT? Lees dan snel verder! Bedrijfsinformatie Jem-id is een grote speler op het gebied van software ontwikkeling. Zo zijn wij continu bezig met het ontwikkelen van de meest innovatieve software voor de AGF- en sierteeltsector. We creëren oplossingen die er toe doen en verbinden klanten niet alleen op technisch vlak, maar zoeken ook de verbinding in

Bekijk vacature »

Senior Front end developer

Functie Wij zijn op zoek naar een ambitieuze, zelfsturende Front-end Expert die ons (internationale) team komt versterken. Onze huidige software development afdeling bestaat uit 7 developers en designers. Wij zijn een écht softwarehuis, dus ervaring in software development is wel echt een must. Er wordt tegelijkertijd aan meerdere projecten gewerkt, voor mooie toonaangevende klanten. Je hebt dus regelmatig te maken met deadlines en opleveringen. Een deel van onze omgeving is in Angular.JS. Dit deel wordt langzamerhand omgebouwd naar de nieuwste versie van Angular. Jouw werkzaamheden zullen bestaan uit: Het aansturen en begeleiden van jouw collega’s Het implementeren van visuele elementen

Bekijk vacature »
Jaws

Jaws

19/11/2006 17:24:00
Quote Anchor link
Ik ben al een tijdje bezig met een inlogscript. Ik heb her en der gelezen dat het mogelijk is een sessie te hijacken, door in je headers de sessieid te plaatsen van de persoon die op dat moment legaal in dezelfde sessie zit.

Maar ik kom er maar niet uit hoe ik dit nou kan oplossen? En als ik dan iets zou hebben weet ik niet hoe ik kan testen of mijn eigen sessie nou wel of niet te hijacken is met het huidige script ;)

Wie kan me een beetje opgang helpen?
 
PHP hulp

PHP hulp

24/01/2025 15:40:39
 

19/11/2006 17:30:00
Quote Anchor link
Maak een database tabel aan en sla hiering de sessie id en het ip adres op.
Controleer steeds of de combinatie van sessie id en ip nog juist is.
Zoniet:
exit("Jammer, maar deze site is dus wel beveiligd.");
 
Frank -

Frank -

19/11/2006 18:47:00
Quote Anchor link
Zet bij het inloggen het ip-adres in de sessie met behulp van sha1() en een salt. Op alle vervolg pagina's ga je controleren of de hash die in de sessie staat nog steeds gelijk is aan de hash die je op de vervolgpagina's berekent op basis van het ip-adres dat daar wordt gebruikt:
salt.inc.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$salt
= '1w5Rb$l[Pf'; // geheime salt, kun je beter buiten de webroot zetten
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
// bij het inloggen:
require_once('salt.inc.php');

$_SESSION['hash'] = sha1($salt.$_SERVER['REMOTE_ADDR'];
?>

En dan de volgpagina's:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
require_once('salt.inc.php');

if(isset($_SERVER['REMOTE_ADDR'])){
  $check =  sha1($salt.$_SERVER['REMOTE_ADDR']);

  if(isset($_SESSION['hash']) && $_SESSION['hash'] == $check){
    echo 'session is niet gehackt.';
  }

  else {
    die('Er is een fout opgetreden.'); // Wees ze vaag mogelijk! Geen melding is nog beter.
  }
}

else {
  header('Location: login.php'); // terug naar de login-pagina
  exit(); // stop de rest van het script
}
?>

Zet deze check even in een functie, wel zo handig, je hebt hem op iedere beveiligde pagina nodig.

Edit: Code gecorrigeerd n.a.v. opmerking Blanche, bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Kalle P

Kalle P

19/11/2006 18:49:00
Quote Anchor link
zet geen wachtwoorden e.d. in je session.
 
Frank -

Frank -

19/11/2006 18:52:00
Quote Anchor link
Kalle schreef op 19.11.2006 18:49:
zet geen wachtwoorden e.d. in je session.
Durf je wel? Zo maar met bruut geweld een open deur intrappen? Zeker weer zo'n lompe Amsterdammer! ;)
 
- SanThe -

- SanThe -

19/11/2006 18:57:00
Quote Anchor link
Frank schreef op 19.11.2006 18:52:
Kalle schreef op 19.11.2006 18:49:
zet geen wachtwoorden e.d. in je session.
Durf je wel? Zo maar met bruut geweld een open deur intrappen? Zeker weer zo'n lompe Amsterdammer! ;)

Lol ;-)
 
Paul K

Paul K

19/11/2006 19:30:00
Quote Anchor link
Als je een foutje maakt bij een veld of een text dan kan je gwoon zo de sessies druit halen;)
kijk ook daarma uit
 
Frank -

Frank -

19/11/2006 19:34:00
Quote Anchor link
Paul schreef op 19.11.2006 19:30:
Als je een foutje maakt bij een veld of een text dan kan je gwoon zo de sessies druit halen;)
kijk ook daarma uit
Geef eens een voorbeeldje, ik snap hier niets van.
 
Jaws

Jaws

19/11/2006 20:20:00
Quote Anchor link
Ok thx voor de voorbeelden Frank. Heb alleen nog wat vragen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $_SESSION['hash'] = sha1($salt.$_SERVER['REMOTE_ADDR']; ?>

Hier zet je dus een Hash van Sha1 met als combinatie je ip + een salt.

Ik deed dit nu dus met een $_SESSION['user'] = $gebruikersnaam. De gebruikersnaam kwam binnen met $_POST via een form. Ik vond dit handig omdat ik telkens als ik later een query wilde maken ik gewoon iets deed in de trand van "select blablab from tabel where user = '$_SESSION['user']'".
Hoe kan ik dit anders oplossen nu als ik een hash als sessie id gebruik? Of snap ik het niet helemaal?

Dan het stukje erna (zie mijn extra commentaar):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start();
require_once('salt.inc.php');

if(isset($_SERVER['REMOTE_ADDR'])){
  $check =  sha1($salt.$_SERVER['REMOTE_ADDR']);

  if(isset($_SERVER['hash']) && $_SERVER['hash'] == $check){ //Moet dit niet zijn $_SESSION['hash'] ipv. $_SERVER['hash']???
    echo 'session is niet gehackt.';
  }

  else {
    die('Er is een fout opgetreden.'); // Wees ze vaag mogelijk! Geen melding is nog beter.
  }
}

else {
  header('Location: login.php'); // terug naar de login-pagina
  exit(); // stop de rest van het script
}
?>


En tot slot vroeg ik me af hoe ik die "salt" dan buiten de publieke www map zet? en hoe ik die dan doe includen.
Gewijzigd op 01/01/1970 01:00:00 door Jaws
 
Jaws

Jaws

21/11/2006 12:15:00
Quote Anchor link
Laat ik het dan even anders stellen.

Nu zet ik de gebruikersnaam in de sessie dus $_SESSION['user'] = $gebruikersnaam. Dit gebeurd pas als ik de gebruikersnaam die ingevoerd werd in het form overeenkomt met de gebruiker-ww combinatie in mijn database.

maar als ik nu, zoals Frank in zijn script laat zien, een hash als Sessie id gebruik dan weet mijn sessie alleen welke hash hij heeft maar niet meer de gebruiker, toch? Hoe kan ik die gebruikersnaam laten meesturen in de sessie? Of is de enige oplossing de Hash in een DB plaatsen met de gebruikersnaam en daarna weer uitlezen voor controle? Ik zou liever niet de DB erbij betrekken alleen als het niet op een andere manier veilig zou kunnen.
Gewijzigd op 01/01/1970 01:00:00 door Jaws
 
Joren de Wit

Joren de Wit

21/11/2006 12:42:00
Quote Anchor link
Je kunt toch meerdere variabelen in een sessie zetten? Je gebruikt die hash om te controleren of je sessie niet gehackt is en de gebruikersnaam om het voor jou makkelijk te maken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$_SESSION
['hash'] = 'je gegenereerde hash';
$_SESSION['user'] = $gebruikersnaam;
?>


Wat betreft het script van Frank: er staat nog wel een fout in. De twee $_SERVER's op regel 7 moeten $_SESSION zijn.
 
Frank -

Frank -

21/11/2006 12:52:00
Quote Anchor link
Code gecorrigeerd! Toch maar goed dat er meerdere mensen naar kijken, had de fout zelf namelijk niet gezien en had hem niet getest...
 
Jaws

Jaws

21/11/2006 13:23:00
Quote Anchor link
Het foutje in Franks script was me toevallig ook opgevallen, zie maar mijn post hiervoor in het commentaar van het script ;)

Oh Dank u Blanche!
Ik wist niet dat je gewoon meerdere variabelen in een sessie kon plaatsen. Ik denk dat ik het PHPsessie ID verwisselt heb met een gewone variabele. Ben nog niet zo veel bezig geweest met sessies namelijk.

Dan rest me alleen nog die "salt" wat buiten de webroot moet komen te staan.
Welke map kun je daar normaal voor gebruiken als je gewoon een Linux webhoster hebt voor je site? Komt die dan in de private_html map bijv.? Ik neem aan dat ik niet gewoon in het wilde weg een bestandje kan plaatsen in een map.
 



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.