user input veiligheid

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior java ontwikkelaar integratie

Functieomschrijving Voor de gemeente Rotterdam zijn wij op zoek naar een senior java ontwikkelaar integratie. Taken Binnen een zelfsturend Scrumteam voer je geheel zelfstanding je opdrachten uit en levert het eindresultaat op aan het Integratieteam. Jij voelt je net als alle teamleden verantwoordelijk voor alle aspecten, vanaf de vraag tot en met de oplevering in productie. Je bent kritisch, je helpt de klant om zijn wensen helder te krijgen, je schrijft zelfstandig clean code die van hoge kwaliteit is, met bijbehorende unit- en integratietesten, je ondersteunt zo nodig bij deployments naar productie. Het Integratieteam bouwt componenten (Endpoints) op de ESB.

Bekijk vacature »

Lasrobot Programmeur

Over de functie Off-line programma’s maken die het beste resultaat bij de lasrobot mogelijk maken De programma’s met behulp van teach verder optimaliseren Proactief meedenken over oplossingen en over de juiste invulling van lasmallen Het lasrobotproces zoveel mogelijk optimaliseren Over het bedrijf Onze opdrachtgever is gespecialiseerd in de engineering, productie en assemblage van samengestelde plaatwerkproducten en monodelen uit metaal. Onze klant werkt samen met het team aan de mooiste producten van de toekomst. Binnen dit bedrijf staat een sterk team van specialisten op het gebied van industrial design, mechanical engineering, in-house prototyping en all-round projectmanagement. Met daarbij uiteenlopende kennis in

Bekijk vacature »

Junior PHP Developer

Functieomschrijving Junior PHP Developer gezocht! Voor een opdrachtgever in de regio Gelderland zijn wij op zoek naar een Junior PHP Developer die onderdeel gaat worden van het ontwikkelingsteam van deze organisatie. In deze functie ga jij aan de slag met het schrijven van software voor de aansturing van en het managen van windparken en bijbehorende onderdelen. Hiernaast ga jij je bezighouden met het ontwikkelen, testen en onderhouden van diverse webapplicaties. Het team waarin je komt te werken bestaat uit 3 developers, hierdoor krijg je veel verantwoordelijkheid en de kans om jezelf verder te ontwikkelen. Er wordt echter wel van je

Bekijk vacature »

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

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 »

Lasrobotprogrammeur/operator

Heb je interesse in trekkers en beschik je overvlijmscherpse precisie? Solliciteer dan op deze vacature! Als Lasoperator ben je vooral bezig met het maken van nieuwe lasrobotprogramma’s en het optimaliseren van bestaande programma’s, zowel online als offline (incl. het bedienen van de Lasrobots). Daarnaast draag je bij aan een optimaal rendement van de las robots. Verder heb je de volgende werkzaamheden: Het meewerken als operator c.q. Robotlassen niveau 2 (van complexe samenstellingen/halffabricaten), het om- en instellen van de diverse stations van lasmallen (productdragers), het afwerken van laswerk (verwijderen lasspetters en oxiden), het bewaken van de machineplanning (op bewerkingen) incl. de

Bekijk vacature »

Medior Front-end Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte websites die in eigen beheer zijn. In onze vestiging in Nederweert zit onze development afdeling en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé Medior Front-end Developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het uitwerken van designs tot functionele layouts Je

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 »

Developer Front-end

Functie omschrijving Front-end Developer gezocht! Wij zijn op zoek naar een front-end developer voor een organisatie in de regio Veenendaal die de eindverantwoordelijkheid op zich neemt van alles wat met design te maken heeft. Je hebt in deze functie een adviserende rol hiervoor moet je beschikken over een grote dosis vakinhoudelijke kennis. Je creëert unieke concepten door samen met collega’s en klanten te overleggen over aangeleverde designs. Hiermee draag jij je steentje bij aan de groeiambities van de klant. Jij wordt het vaste aanspreekpunt voor klanten wanneer het gaat over planningen, hierin is het jouw taak om alle betrokkenen goed

Bekijk vacature »

Java Programmeur

Functie Heb jij altijd al samen willen werken met ervaren java ontwikkelaars dan hebben wij hier de ultieme kans voor jou! Voor een opdrachtgever in omgeving van Naaldwijk zijn wij op zoek naar uitbreiding van het vaste ontwikkel team. Je zult je hier voornamelijk bezig gaan houden met; Wijzigingsverzoeken van klanten uitvoeren, hier wordt je diep in betrokken; Samen met consultants sluit je aan bij gesprekken met klanten, voor alle projecten; Je schakelt veel met consultants, wat is de behoefte van de klant? Hoe kan je hierop integreren?; Het framework moet naar de Cloud gebracht worden, je wordt betrokken bij

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 gewaardeerde werkgever in regio Tilburg waar jij de tijd en ruimte krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je gaat projecten vanaf het begin tot het eind begeleiden. Je sluit aan bij meetings met klanten om hun processen in kaart te brengen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt

Bekijk vacature »

PHP Developer - medior functie

Functieomschrijving Ben jij innovatief en wil jij je kennis graag delen met jouw nieuwe collega's? Lees dan snel verder! Voor een leuke opdrachtgever in de omgeving van Roosendaal zoeken wij een Symfony developer. Of je nou junior, medior of senior bent, je krijgt hier alle vrijheid en verantwoordelijkheid om jouw eigen loopbaan te ontwikkelen. Je gaat je hier bezig houden met en inspelen op de actualiteiten van jouw vakgebied. Techstack: Symfony, PHP, mySQL. Kennis van Svelte is helemaal mooi meegenomen. Bedrijfsprofiel Al sinds '99 is dit webbureau actief. De kernwaarden binnen het bedrijf zijn integer, dienstbaar en deskundig. Je komt

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Senior SQR Java Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Eindhoven Vacature ID: 13333 Introductie Are you passionate about contributing to the world's most advanced machines. Do you thrive in a challenging environment working with highly motivated and skilled teams? If so, we have the perfect opportunity for you! We are seeking a Senior Software Design Engineer for Sequence Tooling to play a critical role in creating and maintaining mission-critical software applications. In this role, you will focus on achieving maintainable software architecture that is transparent and easy to extend while maintaining a strong focus on software quality. You will work closely with

Bekijk vacature »

C#.NET-developer - JUNIOR

Functie omschrijving Voor een leuke opdrachtgever in omgeving Brielle zijn wij op zoek naar een junior developer. Werk jij graag met de volgende tools & technieken? C#, .NET, ASP.NET, MVC en SQL? Kijk dan snel of dit iets voor jou is! Als programmeur bij een productiebedrijf zal je voornamelijk nieuwe software schrijven maar ook bestaande software verbeteren. Verder werk je veel samen in back end projecten met leuke collega's. Bedrijfsprofiel Met een team van ruim 130 personen staan ze elke dag weer klaar om IT en Business te combineren door het ontwikkelen van producten op maat. Er zijn 3 teams,

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

29/04/2024 08:11:56
 
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.