Sessie beveiligen tegen hijacken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12946 Introductie We are looking for a Java Developer! Our client is one of the most innovation companies located within the Netherlands. We provide high quality software in a high-tech and challenging market. Functieomschrijving The department is specialized in creating and developing high quality software for manufacturing automation in a high tech environment. We strive to provide our clients with high quality software and deliver state of the art solutions in a variety of ways. Creating software infrastructure using Java SE / EE Create applications to fine tune manufacturing processes

Bekijk vacature »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

.NET Developer

Functie omschrijving Ben jij een senior .NET developer en heb jij tevens ervaring als teamlead? Ben jij iemand met een helikopterview en denk jij graag mee met de klanten? Dan zijn wij op zoek naar jou! Voor een geweldig bedrijf zijn wij namelijk op zoek naar een ervaren .NET developer. Het bedrijf houdt zich bezig met het ontwerpen en bouwen van websites, portalen en applicaties voor met name zorg- en onderwijsinstellingen en overheidsinstanties. Jouw taken: Het fungeren als Lead Developer; Het meedenken met de business (dit vergt commercieel inzicht); Het begeleiden van diverse projecten (van klein tot groot); Het ontwerpen

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Front-end Developer

Dit ga je doen Je komt in een DevOps-cultuur te werken waarbij je met je team werkt aan de front-end van diverse brand websites; Het ontwerpen van functionele en grafische ontwerpen die worden geïmplementeerd; Draagt zorg voor het maken van analyses; Je werkt nauw met je collega’s samen en geeft elkaar feedback en suggesties waar nodig; Het uitwerken van vraagstukken die afkomstig zijn van verschillende klanten; Hier ga je werken Deze marktleider op gebied van fietsen en fietservaring is gevestigd in twee provincies, verspreid over meerdere locaties. Jij zult voornamelijk in regio Joure aan de slag gaan. De organisatie doelt

Bekijk vacature »

Medior C# Developer

Samen met het development team zorg je ervoor dat alle systemen achter de schermen vlekkeloos werken. Wat doe je als Medior C# Developer bij Coolblue? Als C# developer doe je regelmatig mee aan brainstormsessies over user experience, data en task flow met de UX Designer, Product Owner en Data Scientist in je team. Daarnaast schrijf je op zichzelf staande, consistente en testbare code die goed onderhoudbaar en toekomstbestendig is. Ook C# Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Werken met verschillende soorten data-opslag, zoals Oracle of AWS. Problemen oplossen

Bekijk vacature »

Lead Java Developer

Dit ga je doen Je taken bestaan onder andere uit: Het aansturen van een development team bestaande uit 8 collega's op technisch maar ook HR gebied; Het maken van strategische keuzes omtrent de (nieuw)bouw van deze applicatie; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java, Spring, Angular, REST); Reviewen van code en feedback geven op collega developers. Hier ga je werken Als Lead Software Developer ben je verantwoordelijk voor één van de vier Agile Java ontwikkelteams die bouwen aan technologie die duizenden instanties wereldwijd verbindt. Dit Agile team, data Jira en Confluence gebruikt en

Bekijk vacature »

Teamlead PHP Developer

Functieomschrijving Voor een gewaardeerde werkgever in de buurt van Middelburg zijn wij op zoek naar een gemotiveerde teamlead PHP developer met affiniteit met Symfony/Laravel. Een enthousiast persoon die het ontwikkelteam komt versterken met het aanpakken van uitdagende projecten. Ben jij op zoek naar een uitdaging waar je de tijd en ruimte krijgt jezelf te ontwikkelen en je eigen IT-team aan te sturen? Lees dan snel verder! Die ga je doen: Bijdragen aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de PHP based applicaties; Ontwikkeling en beheer van de serviceportal in Symfony en de webshops in de tweede versie van

Bekijk vacature »

Medior Java developer

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 »

Integratie Developer / Architect

Dit ga je doen Als Integratie Developer / Architect binnen deze organisatie krijg je echt de kans om impact te maken. De organisatie is groeiende maar houdt een corporate cultuur buiten de deur. Heb je een goede business case: zorg voor goede argumentatie en ga ervoor! Geen stroperig beslissingsproces dat jouw ideeën in de weg staat! Enkele van jouw taken: Je ontwerpt en ontwikkelt nieuwe integraties met behulp van interne tools (Boomi) of externe partners; Je vertaalt functionele specificaties naar technische oplossingen; Je denkt mee over strategische ontwikkelingen op het gebied van applicatie integratie; Je voert regie op leveranciers en

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Fullstack of back-end PHP developer

Functie Ieder onderdeel van de software draait op aparte servers en het bestaat dus echt uit verschillende componenten. Het team bestaat uit 4 developers, een klein team dus met korte lijnen. Alles in intern ontwikkeld en je werkt aan alle facetten. Van uitbreiding van de core tot maatwerk voor de klant. Ook liggen er verschillende uitdagingen op servervlak en databases. Je zult de eerste periode veel samenwerken met de lead developer om vervolgens echt je gang te gaan binnen de software. In het team streven ze naast de hoogst haalbare kwaliteit. Hiervoor werken ze nauw met elkaar samen en levert

Bekijk vacature »

Low Code Ontwikkelaar

In het kort Als Low Code Developer werk je aan projecten bij en voor onze klanten, waarbij je voor het ontwikkelen van de oplossingen een technisch low-code platform gebruikt. Samen met het team streef je naar de beste oplossing en bepalen jullie de juiste aanpak. Je rol is divers en je bent van begin tot eind betrokken bij de ontwikkeling zowel de back-end en de front-end van de applicatie. Naast de ontwikkeling en oplevering, breng je ook advies uit aan de klant waarom bepaalde keuzes worden gemaakt. Je bent dan ook communicatief sterk en kunt je keuzes goed (inhoudelijk) onderbouwen.

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 »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een bedrijf in de omgeving van Utrecht! Wil jij werken voor een internationaal bedrijf waar je legio mogelijkheden krijgt als Software Ontwikkelaar? Grijp nu je kans! Je kunt een uitdagende rol gaan vervullen als C#.NET Developer binnen een internationaal bedrijf dat gevestigd is in omgeving van Utrecht. Je zult gaan samenwerken met collega's die over de hele wereld verspreid zitten. Dit bedrijf is zeer vooruitstrevend en werkt met de nieuwste technieken. Als C#.NET Developer ga jij je bezig houden met het volgende: Je blijft op de hoogte van

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

11/05/2024 10:08:06
 

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.