Inloggen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frontend Developer

Dit ga je doen Door ontwikkelen van het online platform Deel uitmaken van verschillende ontwikkelteams Meedenken over UI/UX vraagstukken Uitdragen van Front-end binnen de organisatie Hier ga je werken Deze organisatie, gevestigd in de omgeving van Amsterdam, is een grote onderwijs instelling met meerdere vestigingen en een groot aantal studenten. Zo telt deze organisatie +/- 35.000 gebruikers. Bij deze organisatie staat jouw ontwikkeling centraal en is er veel ruimte voor eigen initiatieven. In samenwerking met jouw team ga jij de online omgeving verder ontwikkelen. In de rol van Front end Developer zal jij 50% van jouw tijd werken in het

Bekijk vacature »

Traineeship Java Developer

Functie Wat ga je doen als Java Developer? Jij start via ons bij deze opdrachtgever als Trainee Java ontwikkelaar, tijdens het traineeship ga je in 1 jaar van de basis naar professioneel Java ontwikkelaar. Je start samen met een groep trainees, volgt de aangeboden cursussen en gaat aan de slag bij één van onze opdrachtgevers. Na een aantal maanden volgt de volgende opdracht. Door de groei in jouw rol kom je op steeds complexere opdrachten terecht. Veel afwisseling dus. Collega’s met ervaring helpen je bij deze groei en samen met jouw coach ga je een persoonlijke leerplan opzetten om jou

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc 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

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 »

(Junior) PHP Ontwikkelaar bij een retail bedrijf i

Bedrijfsomschrijving Ben jij een ervaren PHP ontwikkelaar met een passie voor retail en ICT? Wil jij werken in een team dat zich bezighoudt met het ontwikkelen van uitdagende applicaties voor een groot retailbedrijf in Delft? Dan zijn zij op zoek naar jou! Functieomschrijving Als PHP Ontwikkelaar werk je in een team aan de ontwikkeling van applicaties die door de gehele organisatie worden gebruikt. Je bent verantwoordelijk voor het ontwikkelen, testen en implementeren van deze applicaties. Je werkt hierbij nauw samen met andere ontwikkelaars, projectmanagers en stakeholders binnen de organisatie. Je taken bestaan onder andere uit: Ontwikkelen van nieuwe functionaliteiten en

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor een informele club in omgeving Delft zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Als ontwikkelaar kom je terecht op een afdeling van 6 medewerkers. Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Er wordt voornamelijk gewerkt met PHP, Java en

Bekijk vacature »

Junior .NET developer

Functie Wij zijn bezig met het ontwikkelen van een nieuw product en wij hebben jouw hulp hierbij nodig! Als junior .NET ontwikkelaar krijg jij de kans om samen met ons deze nieuwe uitdaging aan te gaan! Momenteel bestaat ons team uit drie interim Software Engineers. Twee hiervan zijn zeer ervaren .NET specialisten die inmiddels hun strepen in dit vakgebied al hebben behaald. Ook hebben wij een junior als onderdeel van ons team die zich op dit moment nog bezig houdt met de Front-end (Angular/TypeScript), maar zich nu ook meer gaat verdiepen in de backend. Wij willen ons team graag verder

Bekijk vacature »

Functioneel Applicatiebeheerder

Wij van CNB zijn op zoek naar een leergierige Functioneel Applicatiebeheerder CNB is de grootste dienstverlener in de markt van bloembollen en vaste planten. In deze markt verricht CNB de volgende diensten: bemiddeling, veilen en het koelen en prepareren van bloembollen. Vanuit ons hoofdkantoor in Lisse werken bijna 100 collega’s dag in dag uit aan de bemiddeling van bloembollen. In Bovenkarspel vindt het koelen en prepareren van de bloembollen plaats. Wij zijn op zoek naar een enthousiaste Functioneel Applicatiebeheerder die naast een applicatie, ook sfeer kan bouwen! Jij: Vindt het leuk om binnen een klein IT-team aan de slag te

Bekijk vacature »

Softwareontwikkelaar Cleopatra

Functieomschrijving Voor de gemeente Amsterdam zijn wij op zoek naar een softwareontwikkelaar Cleopatra. De directie Verkeer en Openbare ruimte van de gemeente Amsterdam beschikt over een softwareapplicatie, "Cleopatra", waarmee geautomatiseerde handhaving plaatsvindt (op basis van kentekenherkenning) van bepaalde gebieden waarin toegangseisen worden gesteld aan het verkeer. Voorbeelden ervan zijn de milieuzones, de zone zwaar verkeer, handhaving van brom- en snorfietser op het fietspad en autoluwe gebieden. Voor de doorontwikkeling en uitbreiding ervan zijn gespecialiseerde softwareontwikkelaars nodig die helpen bij het programmeren van de handhavingsmodules voor nieuwe gebieden en het verbeteren en bijwerken van de bestaande onderdelen van de softwareapplicatie. Functie

Bekijk vacature »

UX Writer (m/v/d)

UX Writer (m/v/d) Everything we do, starts with you. Together with you, we build the most human-centric fintech. We have the ambition to create the next. And - with Bertelsmann - a strong foundation to start from. Let’s make it new – for society and for yourself. Wij zijn op zoek naar een UX Writer (m/v/d) Fulltime - Op ons kantoor in Amsterdam of Heerenveen / deels vanuit huis Als UX Writer bij Riverty hou jij je bezig met onze strategie om daar te zijn waar onze gebruikers zijn en op de manier waarop zij ons nodig hebben, terwijl wij

Bekijk vacature »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

High level C++ QT Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13486 Introductie Would you like to be involved in every aspect of software development for our exceptional products, from specification and design to testing and integration? If you're passionate about software development and eager to apply your programming skills to create customer-focused deliverables, then this is the perfect chance for you to expand your expertise. You can become a member of our Machine Control department's data-driven development team, where you'll design and build software solutions that optimize machine productivity. As a senior software design engineer, you'll participate in all phases

Bekijk vacature »

Infrastructure Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 12945 Introductie Our client is one of the most innovative companies within the Netherlands. Currently we are looking for an Infrastructure Platform Engineer. Within this role you will be developing the infrastructure. Functieomschrijving Within this role you are responsible in the development of our distributed data and compute platform infrastructure. You will design, develop and implement new features and fixes. Next to this you will integrate and configurate other packages that supports the development of tuning applications within the organisation. You will support customer sites remotely. Design and implement the

Bekijk vacature »

TypeScript developer (tot € 6.000, - bruto pe

Functie Om bovenstaande ambities waar te kunnen maken zijn ze op zoek naar een ervaren Typecript developer die niet alleen zichzelf verder ontwikkelt, maar het ook leuk vinden om op termijn meer junior collega’s op pad te helpen. Je zult aan de slag gaan met het migreren van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde aan User Experience en kiezen ze duidelijk voor kwaliteit i.p.v. snelheid. Je krijgt dus de ruimte om vanuit gedegen onderzoek te werk te gaan en het borgen van kwaliteit staat hoog in het vaandel.

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 »
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

05/11/2024 12:00:04
 
- 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.