Inloggen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

C++ Ontwikkelaar

Functieomschrijving Ben jij als software ontwikkelaar toe aan een nieuwe uitdaging? Dan zoeken wij jou! Voor het maken van de procesbesturingssoftware 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: Ontwerpen, programmeren en testen van product aanpassingen; Analyseren van vragen en wensen van gebruikers en deze vertalen naar een functioneel ontwerp; Inzichtelijk maken van voortgang omtrent softwarewerkzaamheden, o.a. door middel van SCRUM; Continu toetsen van het effect van nieuwe releases op andere tools en processen; Implementeren van nieuwe product

Bekijk vacature »

Medior Java developer (fullstack)

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 »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Medior/senior Back-end developer gezocht!

Functie Vanwege de groei binnen het bedrijf zijn we op zoek naar versterking in het devlopmenttean. Als back-end developer bouw je aan de bedrijfssoftware die ons helpt bij de primaire processen. Een leuk (intern) project dus waarbij je de software continu doorontwikkeld! Je werkt in een klein team, we hebben dagelijks stand-ups en iedere twee weken een scrum-sessie, begeleid door onze Scrum Master. Hierin krijg je uitgebreid de kans om je ideeën te presenteren, en te overleggen met je mede-ontwikkelaars en de Product Owner. Binnen de ontwikkelteams gebruiken we Trello, Gitlab, Jiira, Confluence en Boockstack. Hiernaast werken ze met de

Bekijk vacature »

PHP Developer

As a PHP Developer at Coolblue, you ensure that our webshops work as optimal as possible. How do I become a PHP Developer at Coolblue? As a PHP Developer you work together with other development teams to make our webshop work as optimal as possible and to make our customers happy. Although you are a PHP Developer, you are not averse to a little TypeScript or other technologies that might be used. Would you also like to become a PHP Developer at Coolblue? Read below if the job suits you. You enjoy doing this Writing vanilla PHP code. Working with

Bekijk vacature »

.NET Developer Shared Driving

Bedrijfsomschrijving Onze klant richt zich op het toegankelijker maken van steden, een fantastisch mooi streven. Hoe ze dat doen? Met eigen ontwikkelde software, waarmee vervoersmiddelen gedeeld kunnen worden. Deze inspirerende werkgever maakt een maatschappelijke impact en dat doen ze nu al zo'n 25 jaar! Het bedrijf is gevestigd in het centrum van Rotterdam en kent ongeveer zo'n 90 medewerkers. Het personeel is lekker gewoon gebleven! Iedereen kleedt zich zoals hij of zij dat zou willen en de sfeer is er erg fijn. Een leuke werkgever om voor te werken, en bovendien zijn er voor jou als Software Developer veel mooie

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 »

Front-end developer - working on software for arou

Functie They have recently started looking for an experienced Front-end (mobile/app) developer. Because of the short lines within the team, they are also looking for someone who can communicate with the service desk, sales and support for technical questions. You will join their IT team consisting of about 10 colleagues divided over two teams in rooms opposite each other. Half of these are involved in their front-end. You will work together with, among others, the Architect, 1 senior, 1 junior and there is a Team Leader. In terms of technology, they work with a unique tech-stack, particularly because of the

Bekijk vacature »

Developer

Functie omschrijving Gaat jouw hart sneller kloppen van software developen in C#.NET? Voor een softwarebedrijf in regio Den Bosch zijn wij op zoek naar een C# programmeur. Lees snel verder! Wat ga je doen? Je gaat werken met C# en ASP.NET MVC Framework om onder meer webapplicaties, webshops en websites te ontwikkelen. Je optimaliseert de bestaande software en helpt mee aan het automatiseren van bedrijfsprocessen. Je gaat samen met je collega's de juiste oplossing op basis van de wensen van de klanten uitwerken tot een mooi product. Bedrijfsprofiel Het ontwikkelen van softwareoplossingen en kantoorautomatiseringen is waar dit bedrijf voor staat.

Bekijk vacature »

Back-end Developer

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe stap? Voor een softwarebedrijf in regio Oosterhout zijn wij op zoek naar een back-end developer met kennis of ervaring met C# en SQL. Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je test de software en ontwikkelt deze door; Je brengt de aanpassingssuggesties van klanten in kaart, om ze vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Als junior .NET Developer lever je met jouw oplossingen direct een bijdrage aan de bedrijfsprocessen van de klanten. Werkzaamheden waar jij je zoal mee bezig houdt zijn; Het ontwikkelen, onderhouden en optimaliseren van de draaiende platforms van de klanten; Softwareontwikkeling middels C#, .NET; Klantcontact om de wensen te bespreken en uit te werken; Optimaliseren van de (huidige) bedrijfsprocessen; De IT-afdeling bestaat uit 30 personen verdeeld over 3 teams. Het team waar je in terecht komt bestaat uit ongeveer tien man. Het is een team wat bestaat uit betrokken collega’s, waar iedereen bereidt is om elkaar te

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Full Stack Developer

Dit ga je doen Ontwikkelen van Product Informatie Management (PIM) systemen; Werken aan zowel grotere als kleine projecten voor toonaangevende klanten binnen o.a. de retail; Verantwoordelijk voor de front-end werkzaamheden; Naast de front-end werk je ook aan de backend. Hier ga je werken Als Full Stack Developer komt je te werken binnen een vooruitstrevende organisatie die Product Informatie Management (PIM) systemen levert aan hun klanten. Hun klanten zijn toonaangevende bedrijven binnen o.a. de retail. De organisatie zit gevestigd in regio Zwolle en bestaat uit zo'n 35 medewerkers, waarvan 30 IT. Je komt te werken binnen één van de zelfsturende development

Bekijk vacature »

ERP Developer fleet managementsysteem

Wat ga je doen als ERP Developer fleet managementsysteem? Als ERP developer speel jij een belangrijke rol bij het doorvoeren van wijzigingen en verbeteringen binnen het fleet managementsysteem. Jouw expertise op het gebied van ERP systemen stelt jou in staat om de applicatie optimaal te laten functioneren en te blijven ontwikkelen. Als lid van het IT-team werk je nauw samen met andere developers en het business team om het fleet managementsysteem te integreren met andere systemen. Je bent verantwoordelijk voor het ontwikkelen van nieuwe functionaliteiten en het implementeren van verbeteringen op basis van de wensen en eisen van onze klanten.

Bekijk vacature »
Lord Gaga

Lord Gaga

10/07/2012 17:01:09
Quote Anchor link
Hallo,

Ik heb altijd gebruik gemaakt van sessions als ik een inlogsysteem maakte, maar aangezien ik php.ini niet kan aanpassen, kan ik de lengte van de sessions niet beïnvloeden.

Ik heb rondgezocht op internet en daar staat dat je in plaats van sessions ook gegevens in de database kon zetten, en dat kopellen aan een cookie, dus heb ik het volgende gemaakt:

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
<?php
$length
= 100;
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';  

for ($i = 0; $i < $length; $i++)
{

    $hash .= $characters[mt_rand(0, strlen($characters))];
}


$select = 'SELECT ID FROM users WHERE email = "' . $mysqli->real_escape_string($_POST['email']) . '" AND password = "' . $mysqli->real_escape_string($password) . '" ';
$query = $mysqli->query($select);
$qUser = $query->fetch_object();
    
$insert = 'INSERT INTO user_sessions (ID, userID, IP) VALUES ("' . $hash . '", ' . $qUser->ID . ', "' . $_SERVER['REMOTE_ADDR'] . '")';
$mysqli->query($insert);

setcookie('hash', $hash, time() + 3600, '/');
?>


En dan op elke pagina controleren of de cookie 'hash' in de database voorkomt en het IP dat daar staat opgeslagen hetzelfde is als het jouwe.

Maar ik heb nu geen enkel idee of dit wel veilig genoeg is.
Zijn er nog dingen die ik moet verbeteren, of zijn er nog andere manieren waarop je een goed, veilig inlogsysteem kunt maken (het liefst zonder sessions).

Alvast bedankt!
Gewijzigd op 10/07/2012 17:01:40 door Lord Gaga
 
PHP hulp

PHP hulp

24/11/2024 00:19:19
 
- SanThe -

- SanThe -

10/07/2012 17:15:26
Quote Anchor link
Mobieltjes wisselen steeds van ip-nummer.
 
Erwin H

Erwin H

10/07/2012 17:17:32
Quote Anchor link
Punt 1 wat je zou moeten aanpassen is het feit dat je het password niet encrypted in je database hebt staan. Dat is altijd een slecht idee.
Punt 2 is dat je even moet kijken naar hoe je het IP ophaalt. Als gebruikers achter een proxy zitten dan zal $_SERVER['REMOTE_ADDR'] niet het juiste IP adres geven. Check altijd of er een waarde in $_SERVER['HTTP_X_FORWARDED_FOR'] zit. Zo ja, dan is de kans groot dat dat het juiste IP adres is (hoewel je dat niet kan garanderen).
 
Kris Peeters

Kris Peeters

10/07/2012 17:38:05
Quote Anchor link
Ah, die kende ik niet.

Klopt dit? (zie http://php.net/manual/en/reserved.variables.server.php )
Quote:
If you are serving from behind a proxy server, you will almost certainly save time by looking at what these $_SERVER variables do on your machine behind the proxy.

$_SERVER['HTTP_X_FORWARDED_FOR'] in place of $_SERVER['REMOTE_ADDR']

$_SERVER['HTTP_X_FORWARDED_HOST'] and
$_SERVER['HTTP_X_FORWARDED_SERVER'] in place of (at least in our case,) $_SERVER['SERVER_NAME']


Op php.net zie ik die index niet in de lijst staan; juist 1 keer, bij dit comment dat ik hier quote
 
Erwin H

Erwin H

10/07/2012 17:58:09
Quote Anchor link
Het eerste klopt (of zo gebruik ik het in elk geval), het tweede ken ik niet. HTTP_X_FORWARDED_HOST en HTTP_X_FORWARDED_SERVER heb ik nooit eerder gezien. Wat natuurlijk niet betekent dat het ook niet bestaat ;-)
 
Lord Gaga

Lord Gaga

10/07/2012 18:05:26
Quote Anchor link
Erwin H op 10/07/2012 17:17:32:
Punt 1 wat je zou moeten aanpassen is het feit dat je het password niet encrypted in je database hebt staan. Dat is altijd een slecht idee.
Punt 2 is dat je even moet kijken naar hoe je het IP ophaalt. Als gebruikers achter een proxy zitten dan zal $_SERVER['REMOTE_ADDR'] niet het juiste IP adres geven. Check altijd of er een waarde in $_SERVER['HTTP_X_FORWARDED_FOR'] zit. Zo ja, dan is de kans groot dat dat het juiste IP adres is (hoewel je dat niet kan garanderen).


Het wachtwoord wordt encrypted opgeslagen in de variabel $password.

En is deze check goed genoeg voor het IP Adres?:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
    $IP = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
    $IP = $_SERVER['REMOTE_ADDR'];
}
Gewijzigd op 10/07/2012 18:07:46 door Lord Gaga
 
Erwin H

Erwin H

10/07/2012 18:35:57
Quote Anchor link
Avicka Avickum op 10/07/2012 18:05:26:
Het wachtwoord wordt encrypted opgeslagen in de variabel $password.

En is deze check goed genoeg voor het IP Adres?:

Dan is punt 1 inderdaad niet meer van toepassing.
Voor punt 2 is dat inderdaad de betere manier.
 
Lord Gaga

Lord Gaga

10/07/2012 18:36:35
Quote Anchor link
En is verder ook alles veilig? Of kan het nóg veiliger?
 
Erwin H

Erwin H

10/07/2012 18:45:51
Quote Anchor link
Wat ik er nog aan toe zou voegen (hoewel je dat misschien al hebt, is niet te zien), is een kolom in de database met wanneer de laatste actie van de gebruiker was. Op die manier kan je een timeout erin bouwen zodat als de gebruiker niet uitlogt, de sessie toch op zeker moment wordt afgebroken. Niet alleen is dit handig voor gewone echte users, maar ook voor sessie hijacking.

Verder zou je nog kunnen denken aan een extra cookie met een oplopend nummer die je ook nog in je db zet (wellicht het auto increment id van je sessie record). Alleen of dat echt helpt is de vraag. Als een hacker het ene cookie kan vinden, dan kan hij vast de ander ook vinden. Het helpt alleen als een hacker op de gok een hash in zijn cookie zet en toevallig een goede hash kiest.
 
Lord Gaga

Lord Gaga

10/07/2012 19:00:14
Quote Anchor link
Erwin H op 10/07/2012 18:45:51:
Wat ik er nog aan toe zou voegen (hoewel je dat misschien al hebt, is niet te zien), is een kolom in de database met wanneer de laatste actie van de gebruiker was. Op die manier kan je een timeout erin bouwen zodat als de gebruiker niet uitlogt, de sessie toch op zeker moment wordt afgebroken. Niet alleen is dit handig voor gewone echte users, maar ook voor sessie hijacking.

Verder zou je nog kunnen denken aan een extra cookie met een oplopend nummer die je ook nog in je db zet (wellicht het auto increment id van je sessie record). Alleen of dat echt helpt is de vraag. Als een hacker het ene cookie kan vinden, dan kan hij vast de ander ook vinden. Het helpt alleen als een hacker op de gok een hash in zijn cookie zet en toevallig een goede hash kiest.


De laatste actie ga ik er zo inzetten.

En sessie hijcking is toch dat je iemand anders 'session_id' overneemt in je cookie, zodat je op diegene zijn account bent ingelogd? (Want daarvoor sla ik ook het IP op, en controleer die)
 
Erwin H

Erwin H

10/07/2012 19:16:13
Quote Anchor link
Klopt, en in de meeste gevallen zal dat IP adres al een bescherming bieden. Maar je wilde weten of het nog veiliger kon en dat kan. Elke laag die je erbij zet helpt, maar niets is 100%.

Wat betreft het IP adres, ook dat is te 'vervalsen'. Als iemand dus een IP adres faked, maar niet binnen de time out periode probeert het sessie id te gebruiken, dan kan je met behulp van die time out de gebruiker uitloggen. Gebruikt de hacker het allemaal wel binnen de time out dan heb je er alsnog niets aan natuurlijk.
 
Marco M

Marco M

10/07/2012 20:18:54
Quote Anchor link
Als extra kun je ook nog de useragent ( $_SERVER['HTTP_USER_AGENT'] ) opslaan in de sessie, en deze voortdurend checken. Normaliter verandert de browser + versie niet gedurende een sessie, dus een extra controle om te checken of een ander persoon niet de sessie probeert over te nemen.
 



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.