user input veiligheid

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior/senior Back-end developer wanted!

Functie Because of the growth within the company, we are looking for reinforcement in the devlopmenttean. As a back-end developer you build the company software that helps us with the primary processes. A fun (internal) project in which you continuously develop the software! You will work in a small team, we have daily stand-ups and a scrum session every fortnight, led by our Scrum Master. During these sessions, you get the opportunity to present your ideas and discuss them with your fellow developers and the Product Owner. Within the development teams, we use Trello, Gitlab, Jiira, Confluence and Boockstack. They

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

Junior Front end developer

Functie Jij als developer gaat ons helpen onze producten verder te ontwikkelen en in te zetten in de markt. Op dit moment bestaat ons SaaS product uit 3 componenten die zowel los als in een pakket gekocht kunnen worden. Het gaat hier om een online kaartapplicatie, een workflow tool en een monitoring tool. Momenteel zijn wij 3 jaar geleden gestart met de ontwikkeling. De tech-stack waarmee we werken is voornamelijk Javascript, Vue.js en Python. Daarnaast gebruiken wij FaundaDB als database en werken we veel met GIS applicaties. De uitdaging die we momenteel hebben is dat we momenteel een intern team

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Front-End Developer

Als Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Front-End Developer bij Coolblue? Als Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Je krijgt energie van het bedenken van creatieve oplossingen en presenteert dit graag binnen het team. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te

Bekijk vacature »

Low-code developer

Functie omschrijving Heb jij altijd al een training willen volgen in het buitenland? Voor een leuke opdrachtgever in omgeving Alphen ad Rijn zijn wij op zoek naar kandidaten die aan de slag willen als Low Code Developer! Beschik jij over HBO/WO nivo, bij voorkeur Informatica, maar een ander technische opleiding zoals bijv. wiskunde, natuurkunde is ook goed. Heb jij aantoonbare affiniteit met IT en ben jij gedreven, enthousiast, communicatief vaardig en klantgericht? Lees dan snel verder! Je wordt getraind tot een volwaardig Low Code Developer, het traject ziet er als volgt uit: Start 1e week januari, opleiding van 3 weken

Bekijk vacature »

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 »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

Bekijk vacature »

Back end developer Onderwijssoftware

Functie Als back 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 hoogwaardige

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

E-Identity Developer met Projectleider Kwaliteiten

Functieomschrijving Voor de kamer van koophandel zijn we op zoek naar een E-Identity developer met projectleider kwaliteiten. Voor deze opdracht zoekt KVK een Informatieanalist met Technisch Projectleider en ICT developer kwaliteiten, met kennis van E-identity. We zoeken in de breedte en niet specifiek in de diepte qua skillset. Een Junior Projectmanager, een Junior Informatieanalist, een Junior Developer (full stack), een Junior Designer en een Junior ICT architect ineen, met een sterk gevoel van stakeholder management en planning vaardigheden. Door de internationale setting, én de realisatie van ontsluiting van en naar basisregisters toe zijn wij op zoek naar enige ervaring binnen

Bekijk vacature »

C#.NET Developer Jr. Functie

Functie omschrijving Bouw jij graag aan applicaties om processen in distributiecentra te optimaliseren? Wij zijn op zoek naar een C#.NET ontwikkelaar in regio Breda die hier graag een steentje aan bijdraagt! Jouw werkzaamheden zullen er als volgt uitzien: Je krijgt veel vrijheid in de keuze van de technieken die je gaat gebruiken. Uiteraard wel binnen de gestelde kaders, en door gebruik te maken van het .NET platform. Je gaat aan de slag met de ontwikkeling van een nieuwe module binnen de WMS suite van dit bedrijf. Deze "carrier" module gaat er voor zorgen dat de selectie van een vervoerder volledig

Bekijk vacature »

Fullstack Developer

Functieomschrijving Heb je kort geleden jouw HBO diploma ICT development behaald? Of zit je nog aan het begin van je carrière en heb je affiniteit met C#.NET? Voor een erkende werkgever in de omgeving van Oosterhout zijn wij op zoek naar een fullstack developer. Als C#.NET developer werk je samen met een vooruitstrevend team aan het ontwikkelen van maatwerk software voor klanten. Je hebt affiniteit met SQL, maar nog belangrijker is dat je kennis en ervaring hebt met C#.NET. Jouw werkzaamheden zien er als volgt uit: Het ontwikkelen van onze high-availability en high-performance backend; Je begint de dag rond 8:30

Bekijk vacature »

Fullstack developer (NodeJS, React, AWS)

Functie Als Fullstack developer kom je te werken in het ontwikkelteam, maar zoals gezegd komt er veel meer bij kijken dan alleen maar ontwikkelen. Je bent samen met je collega’s continu bezig om de software uit te breiden maar hiernaast doe je doorlopend onderzoek naar de inzet van bijvoorbeeld Machine Learning. Ze willen met hun software echt voorlopen op andere en toegevoegde waarde leveren voor de eindgebruiker. Mede hierom zijn ze erg benieuwd naar iemand zijn persoonlijkheid, of hij graag nieuwe dingen uitzoekt (Google!), en initiatief neemt. Maar waar staan ze nu? Na een onderzoeksfase van ruim een jaar zijn

Bekijk vacature »

Back end developer PHP, Laravel

Functie Jij komt te werken in ons webdevelopment team, wat bestaat uit 8 ervaren collega’s. Hiernaast hebben wij nog een team van 2 ontwikkelaars die aan native applicaties werken. Bij ons zijn er korte lijntjes en er hangt een gezellige informele werksfeer. Maar het belangrijkste is natuurlijk dat je aan geweldige applicaties zult gaan werken! Wij willen als organisatie niet te groot worden, we willen gewoon toffe dingen maken. Onze techstack bestaat momenteel uit: PHP, Laravel, Javascript, Typescript, Git, MySQL, Java, Kotlin, Xamarin. Samen met ons ga jij zorgen dat we puik werk leveren! Waarbij je bij elke fase in

Bekijk vacature »
Ozzie PHP

Ozzie PHP

26/06/2014 00:12:40
Quote Anchor link
Hi guys,

Ik vraag me af... hoe ver voeren jullie veiligheid door?

Stel je hebt een formulier waar een bezoeker zich kan inschrijven op jouw website.

Zo'n formulier bestaat uit een aantal velden, maar laten we ons heel simpel even focussen op het veld "voornaam".

Een bezoeker vult zijn voornaam in, en het formulier wordt verstuurd. Wat controleren jullie vervolgens?

Volgens mij is het gebruikelijk om te controleren of de naam minimaal x en maximaal y tekens heeft, en of het allemaal letters zijn en eventueel aparte tekens (bijv. een liggend streepje).

Maar... controleren jullie bijv. ook nog of er html-tags in voorkomen? Dus stel iemand vult niet "Jan" in maar "<script>I am an evil script!</script>"? Controleren jullie ook op dit soort dingen? Ik heb z'n vermoeden dat dit in de meeste gevallen niet gebeurt, maar ik ben toch wel benieuwd eigenlijk. En als er mensen zijn die hier wel op controleren, wat doe je dan als je bemerkt dat iemand de boel probeert te "hacken"?
Gewijzigd op 26/06/2014 00:12:54 door Ozzie PHP
 
PHP hulp

PHP hulp

28/04/2024 21:12:38
 
Tortuga web

tortuga web

26/06/2014 09:22:16
Quote Anchor link
Ik controleer vrijwel alles wat via een formulier binnenkomt. In geval van een naam bv. is het zo gebeurt om bv op alleen letters en een enkel accent of streepje te controleren. En ik hoop dat het in de meeste gevallen WEL gebeurt. Bovendien stuur ik alles naar de database met mysqli_real_escape_string.
Om spam van robots tegen te gaan gebruik ik een inputveld type="text" dat ik de style hidden meegeef. Vervolgens check ik of dat veld wel echt leeg is. Het schijnt dat robots zo´n veld automatisch wel invullen, maar ik weet niet echt zeker hoe effectief dit is.
 
Ivo P

Ivo P

26/06/2014 09:25:26
Quote Anchor link
Ik waarschuw vaker voor die "minimale lengte" controle die je noemt:
Er is vaak zat een situatie te bedenken waarbij jouw lengte niet voldoet:

Een voornaam van minimaal 3 letters? (heb ik nog geluk, maar Jo heeft pech).
Een postcode van 6 tekens? Helaas in België maar 4 cijfers en Duitland 5.
En zoals ik gisteren tegenkwam op een puur NL site: Aruba heeft geen postcodes. (en ja, Arubaanse studenten zoeken ook kamers in de stad waar ik de site voor maakte).

Verder zitten er genoeg vreemde tekens in namen, om er altijd een paar te kunnen missen.
De ' heb je niet veel last van als je maar je escaping in de query goed doet.

De < en > kunnen vervelend zijn. In principe ook prima te voorkomen als overal consequent htmlspecialchars gebruikt bij het echo-en.
Maar je zou die tekens inderdaad kunnen filteren, voor wat extra zekerheid. (filter_input() )
 
Ozzie PHP

Ozzie PHP

26/06/2014 09:30:37
Quote Anchor link
Thanks.

Maar controleren jullie bijv. of er html-tags worden gebruikt in een naam?

Je zou bijv. met strip_tags een vergelijking kunnen doen tussen het origineel en de gestripte versie. Als die van elkaar verschillen, dan loopt er dus iemand te klooien. Mocht die persoon zich dan alsnog inschrijven, zou je bijvoorbeeld kunnen registreren dat ie "suspicious" gedrag heeft vertoond. Of kun je daar eigenlijk niks mee?
 
E vH

E vH

26/06/2014 09:42:59
Quote Anchor link
Tortuga web op 26/06/2014 09:22:16:
Vervolgens check ik of dat veld wel echt leeg is. Het schijnt dat robots zo´n veld automatisch wel invullen, maar ik weet niet echt zeker hoe effectief dit is.


Checkboxjes toepassen doet ook wonderen in de meeste gevallen.

Ivo P op 26/06/2014 09:25:26:
Ik waarschuw vaker voor die "minimale lengte" controle die je noemt:
Er is vaak zat een situatie te bedenken waarbij jouw lengte niet voldoet:


Meestal als ik een veld voornaam en achternaam zie, dan meld ik in voornaam meestal maar 1 teken.
Net zoals Ivo P ( 3 + 1 ).

Ozzie PHP op 26/06/2014 09:30:37:
Maar controleren jullie bijv. of er html-tags worden gebruikt in een naam?


Zoals Ivo al aangaf, doormiddel van filter_input, kom je ook al een heel eind, zie
php.net
dit pas ik trouwens wel toe.
 
Tortuga web

tortuga web

26/06/2014 09:43:09
Quote Anchor link
Wat wil je daarmee bereiken? De verdachte achterhalen?
Als je consequent blijft in je escaping en htmlspecialchars gebruik, dan kan er toch eigenlijk niets mis, of zit ik hier fout? En waarom zou je überhaupt < en > toe willen laten in een naam?
 
Ivo P

Ivo P

26/06/2014 09:43:20
Quote Anchor link
Ligt een beetje aan het soort site dat je maakt.

In mijn toepassingen zijn het hoofdzakelijk gebruikers die medewerker zijn. Daar is het anders dan een publiek toegankelijke omgeving.
Ik kies er dan vaker voor om de foute tekens gewoon te strippen.

Maar ik moet zeggen dat het me ook wel eens overkomen is dat een < uit heel andere bron een probleem veroorzaakte:
een automatisch aangeleverde productnaam (xml feed met orders) die een "<" bevatte (iets met schoonmaak middel met minder dan x% alkohol of zo).
Dat ging fout bij het aanmaken van een pdf. Die was wit vanaf het punt waar dat teken stond.

Ik heb dat aangepast door voor toekomstige producten die tekens te vervangen door een "-".

Maar je moet nog onderscheid maken tussen
* is het html
* is het een < die daar hoort en moet blijven
* is het een < die er minder toe doet (op een picklist staat de naam van het product er maar ter extra info bij. HEt gaat daarom het artikelnummer
 
Ozzie PHP

Ozzie PHP

26/06/2014 09:52:27
Quote Anchor link
In een productnaam kan ik me er iets bij voorstellen dat daar rare tekens in kunnen zitten. Maar bij een persoonsnaam weet je dat er dan iets niet klopt. Ik ben nog nooit iemand tegengekomen die Piet <alert>dikke lul!</alert> heet bijvoorbeeld :)

De vraag is dus of je moet controleren of iemand platgezegd de boel loopt te f#cken.

>> Wat wil je daarmee bereiken? De verdachte achterhalen?

Nee, dat niet zozeer. Maar je zou wel specifieke actie kunnen ondernemen. Stel iemand gaat html invullen, dan zou je bijv. z'n IP kunnen blocken. Of stel die persoon schrijft zich na zijn "hack"-pogingen alsnog in, dan zou je kunnen loggen dat deze persoon een "hack"-poging heeft gedaan, zodat je bijvoorbeeld extra alert kunt zijn als deze persoon een product bestelt via de website.

Dus daarom vroeg ik me af of jullie op dat soort dingen controleren... en of dat überhaupt gebruikelijk is.
 
Ward van der Put
Moderator

Ward van der Put

26/06/2014 10:06:45
Quote Anchor link
Ozzie PHP op 26/06/2014 09:30:37:
Thanks.

Maar controleren jullie bijv. of er html-tags worden gebruikt in een naam?

Je zou bijv. met strip_tags een vergelijking kunnen doen tussen het origineel en de gestripte versie. Als die van elkaar verschillen, dan loopt er dus iemand te klooien. Mocht die persoon zich dan alsnog inschrijven, zou je bijvoorbeeld kunnen registreren dat ie "suspicious" gedrag heeft vertoond. Of kun je daar eigenlijk niks mee?

Zodra je iets anders bouwt dan een HTML-editor, zou ik sowieso altijd strip_tags() gebruiken. Maar op basis van karakters kwaadaardige input signaleren, is lastig. Bijvoorbeeld < en > zitten op het toetsenbord boven de komma en de punt, dus een invoerfout is zó gemaakt.

Wat ik zelf specifiek bij namen doe, is karakters zoals ' en " door hun gekrulde tegenhangers vervangen. Verder komt invoer geheel in kleine letters of hoofdletters veel meer voor sinds de opkomst van tablets, en kun je ook die fatsoeneren.
 
Ozzie PHP

Ozzie PHP

26/06/2014 10:14:46
Quote Anchor link
Maar hou je dan geen rekening met "suspicious behaviour"?

Dus stel iemand voert bij het invoerveld "voornaam" bijvoorbeeld "<php>dsaflj@#$sdf@#$#48745!:TRRE$#</php>" in. Zeg jij dan alleen "voornaam niet correct!" en moet men de voornaam opnieuw invullen, of leg je als die persoon zich uiteindelijk toch succesvol inschrijft vast dat hij raar gedrag heeft vertoond?
 
Ward van der Put
Moderator

Ward van der Put

26/06/2014 10:40:42
Quote Anchor link
Je houdt er in zoverre rekening mee dat je op voorhand alle malversaties uitsluit.

Maar dat betekent niet dat je op voorhand een complete firewall met intrusion detection bouwt. Aanvallen signaleer je meestal door iets merkwaardigs dat je vervolgens als "incident" analyseert aan de hand van de opeenvolgende requests in je serverlogs.

Wil je zo'n analyse automatiseren, dan moet je aan kansrekening doen. En dat vraagt om complexe modellen en big data. Bijvoorbeeld de kans dat je een potentiële wanbetaler aan de haak hebt is groter bij een anoniem Hotmail-adres, maar dat maakt niet elke Hotmail-gebruiker direct verdacht.
 
Ozzie PHP

Ozzie PHP

26/06/2014 10:47:22
Quote Anchor link
Ik snap wat je bedoelt. Je moet er niet in doorslaan. Maar ik zou me kunnen voorstellen dat als iemand <script> in het "voornaam" veld plaatst, er iets niet in de haak is. Stel dat die persoon zich vervolgens toch inschrijft, is het wellicht zinvol om een "notitie" bij z'n naam te zetten. Dat is eigenlijk een beetje wat ik bedoel. Iemand kan van alles proberen, en zich vervolgens toch gewoon inschrijven zonder dat er iets wordt opgemerkt. Ik denk dat het in 99% van de gevallen zo gaat.
 
Ward van der Put
Moderator

Ward van der Put

26/06/2014 11:01:41
Quote Anchor link
Dat zou je inderdaad wel kunnen doen: het opduiken van <script> in de input is dan een incident dat je logt in een security log.

De nadelen en gevaren van dat alles geheel automatiseren zijn echter niet te onderschatten:

- Je moet alle bekende aanvallen in kaart brengen. Ga er maar aanstaan: tel nog eens 2 jaar op bij de ontwikkeling van je platform.

- Je krijgt schijnzekerheid, want de beruchtste en kwaadaardigste hacks zijn meestal gericht op onontdekte en niet-gepubliceerde bugs. Ook in PHP en MySQL overigens: deze "fabrieken" hebben in het verleden wel eens terugroepacties gehad.

- Je krijgt door alle extra controles waarschijnlijk een onacceptabele performance. Daarom beperk je het tot kritieke applicaties, maar hang je er niet een complete site onder waar 99,9998% van de input onschuldig is.

- Je verzet waarschijnlijk dubbel werk als je een goed beveiligde webserver hebt. Een belangrijk deel van deze beveiliging is niet het domein van PHP, maar van je webserver, het file system en het OS.
 
Ozzie PHP

Ozzie PHP

26/06/2014 11:06:28
Quote Anchor link
Oké thanks. Alles ondervangen en loggen zal inderdaad niet te doen zijn. Misschien alleen wat simpele dingetjes dan. Naja... ik ga er dan voorlopig maar geen prioriteit van maken.
 
Ward van der Put
Moderator

Ward van der Put

26/06/2014 11:17:02
Quote Anchor link
Het is op zich wel een goed topic, want je vraag "hoe ver voer je de beveiliging door?" is wel te beantwoorden met een lijst met enkele tientallen best practices. Dan zijn strip_tags() en htmlspecialchars() vooral twee bouwstenen in een groter geheel; de rest van de best practices moet je bij elkaar googelen en lezen.
 
Ozzie PHP

Ozzie PHP

26/06/2014 11:21:25
Quote Anchor link
Daar moet ik me inderdaad nog eens wat verder in gaan verdiepen.
 
Ward van der Put
Moderator

Ward van der Put

26/06/2014 11:34:20
Quote Anchor link
OWASP PHP Security Cheat Sheet

Input passeert hier in verschillende vormen de revue, bijvoorbeeld met "unhelpful builtins" van PHP voor slashes, met PHP als gemankeerde template-taal vanwege het standaard ontbreken van controles op HTML-input en HTML-output (gebruik strip_tags en htmlspecialchars), mogelijkheden om de encoding te omzeilen (dwing UTF-8 af) en het onvoldoende controleren van uploads en superglobal arrays (bijvoorbeeld ongecontroleerde HTTP_-kopieën in $_SERVER).
Gewijzigd op 26/06/2014 11:36:04 door Ward van der Put
 
Ozzie PHP

Ozzie PHP

26/06/2014 11:41:08
Quote Anchor link
Thanks Ward. Dat kan nog wel eens van pas komen :)
 



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.