user input veiligheid

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

Fullstack developer - medior

Functie omschrijving Ben jij toe aan een nieuwe uitdaging en zou jij graag bij een platte maar informele organisatie willen werken? Voor een mooi softwarebedrijf in omgeving Dordrecht zijn wij op zoek naar versterking voor op de afdeling Software Development! Als Fullstack developer wordt je bij dit bedrijf onderdeel van de volledige ontwikkeling van requirement tot oplevering! Werkzaamheden Jouw focus ligt op de front end en alles wat daarbij komt kijken. Je gaat ontwerpen, ontwikkelen, testen en valideren. Je zult voornamelijk werken met React.js en Typescript. Maar ook Javascript, HTML en CSS komen aanbod. Daarnaast zal je ook regelmatig met

Bekijk vacature »

C# Developer Research and Development - Delft

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Delft Vacature ID: 6307 Introductie C# Developer Research and Development - Delft - Onze klant is één van de meest innovatieve bedrijven in de region van Delft. Op dit moment zijn ze voor het innovatie centrum. In het innovatie centrum wordt gewerkt aan de nieuwste technieken voor navigatie software. R&D / C# / Pattern Recognition / Algorithms / 3d Data / DotNET Functieomschrijving Als C# Developer kom je te werken in een innovatief scrumteam. We ontwikkelen en door ontwikkelen de nieuwste technieken op het gebied van navigatie software. Deze software wordt onder andere

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 »

Robot Programmeur

Een verantwoordelijke baan met leuke uitdagingen. Heb jij ervaring met het programmeren van robots? Kan jij goed samenwerken met collega's die verschillende specialisaties hebben? Ben je oplossingsgericht, analytisch en flexibel? Ga dan aan de slag als Robot Programmeur bij Gibas in Nijkerk! Als Robot Programmeur kom je te werken bij Gibas. Dat betekent dat je gegarandeerd meewerkt aan unieke oplossingen in productieprocessen. Bij elk project moet er opnieuw geëngineerd en geprogrammeerd worden. Dat maakt jouw werk uitdagend! Voordat je robots gaat programmeren komt er het volgende bij kijken: De opdracht gaat van de afdeling Sales naar de afdeling Operations door

Bekijk vacature »

Full stack .NET developer Microsoft 365

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 »

Ambitieuze Junior/Medior Low-code Developers gezoc

Bedrijfsomschrijving Transformeer bedrijven met jouw expertise in innovatieve technologie Ben je een bedreven softwareontwikkelaar met ervaring in Low-code platformen, of sta je te popelen om je in deze baanbrekende oplossing te verdiepen? Wij zijn op zoek naar jou! Ons klantenbestand groeit en we willen ons team uitbreiden met deskundige en leergierige Low-code specialisten. Is het jouw passie om organisaties te ondersteunen in hun digitale transformatie en maatwerkoplossingen te bieden met behulp van geavanceerde software? Wij zijn een vooruitstrevend bedrijf dat dagelijks werkt aan het oplossen van complexe vraagstukken om de digitale ambities van onze klanten te realiseren. Functieomschrijving Ontwikkel op

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

.NET Developer

Functie omschrijving Net afgestudeerd en op zoek naar een leuke baan als developer? Zoek niet verder! Ik heb een functie beschikbaar als back-end developer, bij een leuk familiebedrijf. Je gaat werken met de Microsoft stack en de technieken C# en .NET. Verder maak je gebruik van MVC en Entity framework. SQL kent ook geen geheimen voor jou. Jouw verantwoordelijkheden: Nieuwe maatwerk software bouwen; API koppelingen bouwen; Applicaties en software optimaliseren; Back-end programmeren. Een erg uitdagende functie, met veel vrijheid. Je kan meerdere dagen thuis werken en als je op kantoor werkt wordt de lunch verzorgd. Heb je interesse, reageer dan

Bekijk vacature »

SQL database developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als SQL database developer? Dit bedrijf bouwt applicaties om processen in distributiecentra te optimaliseren. Ter uitbreiding van het development team zijn wij op zoek naar een SQL database ontwikkelaar. Wil jij werken voor een groeiende werkgever in regio Breda waar jij de ruimte en tijd 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 werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van logistieke processen; Je gaat projecten vanaf het begin tot het

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 »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

Robot Programmeur

In het kort Drie redenen waarom deze vacature uniek is! Programmeren van zelflerende robots Werken op kantoor en testen in de bedrijfshal Je krijgt verantwoordelijkheid, vrijheid en je mag werken naar eigen inzicht De organisatie Hier ga je aan de slag Een bedrijf dat innovatieve robottoepassingen ontwerpt en bouwt voor onder andere de staal industrie, energie- bouw- en agrarische sector. De robots die vaak in combinatie met diverse randapparatuur geleverd worden vormen een totaaloplossing voor de klant. Dit zijn klanten over de hele wereld, van België en Duitsland tot China, India, maar ook in Nederland. Projecten waar momenteel aan wordt

Bekijk vacature »

SAP HANA Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 13382 Introductie We is looking for a HANA Developer to work for our client. The candidate has to have an experience in building Data Intensive Applications (DIA’s). The role of a HANA Developer at ASML involves working on building Data Intensive Applications in an industrial/enterprise environment. The primary responsibility is to handle data from various sources and determine the best way to structure it for use by data analysts, who will run queries and algorithms against it for predictive and prescriptive analytics through machine learning. Wat verwachten we van jou?

Bekijk vacature »

PHP Developer gezocht!

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij op zoek naar een nieuwe uitdaging? Lees dan snel verder! Voor een organisatie in de regio Utrecht die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken 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

29/03/2024 11:10:49
 
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.