externe input 'opschonen'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior C++ Developer 3D Thuiswerken

Functieomschrijving Wil jij als ervaren Software Developer met C++ werken bij een high-tech ingenieursbureau in Rotterdam? Dit high-tech ingenieursbureau maakt een applicatie waardoor hele topografische kaarten worden opgebouwd. Deze applicatie wordt gebruikt door de grootste organisaties van Nederland, waaronder de top 10 gemeentes van dit land! Wil jij meer weten? Lees dan snel verder! In C++ ontwikkelen van en werken aan innovatieve ruimtelijke ordening applicatie; Uitvoeren van technische implementaties bij klanten op locatie; Samenwerken in een dynamisch Agile team; Werken aan innovatie en kennisdeling. Functie-eisen Minimaal HBO of WO werk- en denkniveau; Je hebt minimaal 2 jaar ervaring als Developer

Bekijk vacature »

Software Engineer C++ / Software Developer C++

Software Engineer C++ / Software Developer C++ (Bsc, MSc, Computer Science, Information Technology, Mathematics, C, C++, Linux, Algorithms) General Do you find great joy in software development, which is then used worldwide, and are you familiar with C++ and with algorithms… read on! Organization For our business client, a fast dynamic technical company which gathers and processes huge amounts of data, we are looking for several Software Engineers. You will be part of a team consisting of about 25 software developers working on a suit of advanced software tools. These software tools are then used further on in the company

Bekijk vacature »

Gedreven Junior 1+ jaar PHP Developer (MBO/HBO)

Als Junior PHP Developer krijg je de kans om aan de slag te gaan voor een toonaangevend bedrijf en tevens marktleider binnen haar specifieke sector. Al sinds 2008 zijn zij actief op de markt en zijn zij de B2C en voornamelijk de B2B markt aan het veroveren. Op dit moment maken zij een fantastische groei door, die zich ook reikt tot de technische ontwikkeling van de club. Het bedrijf is op internationaal actief en bieden een mooi toekomstperspectief i.c.m. concrete groeiplannen. Functie-omschrijving Als Developer kom je te werken in een team van Medior en Senior Developers. Dit is zeker top,

Bekijk vacature »

Software Developer Progress

Functieomschrijving Wil jij in een toonaangevende organisatie werken met de ambitie om de (inter-)nationale markt te bewerken? Reageer dan nu! Uitvoeren van analyses ter bevordering van de betrouwbaarheid en performance van de applicatie; Implementeren van functionaliteiten in eigen Back Office pakket; Meedenken over de architectuur en tevens waarborgen van de architectuur; Programmeren van functionele en technische wijzigingen; Bijwerken van documentatie; Troubleshooten van complexe incidenten; Aanroepen van webservices, message handling; Functie-eisen HBO/WO diploma; Bijzonder goed in woord en geschrift van zowel de Nederlandse en Engelse taal; 6+ jaar ervaring in software ontwikkeling; Zeer sterk analytisch vermogen; Ruime ervaring met Progress /

Bekijk vacature »

.Net Web Developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Bij DPA GEOS werken onze consultants als Web Developer in Agile teams bij onze klanten en zijn ze verantwoordelijk voor de grotere webapplicaties. Wil jij dit ook, want we zijn op zoek naar enthousiaste Web Developers om ons development team te versterken. Je draagt positief bij aan de teamgeest binnen een projectteam en je ondersteunt de software architect en projectleider bij hun werkzaamheden. Je gaat webapplicaties maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege

Bekijk vacature »

Op zoek naar jou, tenminste als jij een Medior/Sen

Na jarenlang ondersteuning te hebben geboden aan de backend van diverse Enterprise omgevingen ontstond bij veel klanten de vraag naar gedegen front-end / Javascript developers. Van hieruit heeft dit bedrijf slim ingehaakt op de vraag en een volledig frontend / Javascript georiënteerd team opgezet onder een nieuw maar gelieerd label. Dit specifieke team bestaat momenteel uit 5 developers van Medior en Senior niveau, maar gezien de huidige vraag en gezonde groei is er ruimte om dit jaar uit te groeien tot 15 of wellicht zelfs 20 FTE. Het bedrijf is zich bewust van de schaarste aan goede developers en doet

Bekijk vacature »

Front-end leergierige junior C#-ASP.NET developer

Dit bedrijf in omgeving Breda is een technisch ondersteunend partner van MKB bedrijven op IT gebied. Denk hierbij aan het ondersteunen of zelfs helemaal overnemen van projecten met betrekking tot de optimalisatie van bedrijfsprocessen en het ontwikkelen van slimme softwareoplossingen. Het bedrijf bestaat nu 17 jaar en telt 22 F.T.E. op het moment. Los van het management en het 1 koppige sales team, zijn het allemaal hands-on .NET developers. Door het feit dat het bedrijf een langzame maar constante groei doormaakt hangt er een familiare sfeer. Dit uit zich in het feit dat er regelmatig uitjes, gameavonden, bootcamps en dergelijke

Bekijk vacature »

Master data coordinator

Do you love processes and analytical work? Check out the below opening for our new project team! WHAT YOU’LL BE RESPONSIBLE FOR Investigate the currently available master data; Define by characteristic its source and reliability; Define the key process relevant characteristics (might be that it does not exist yet); Define per above characteristic how the reliable value should be captured; Define a plan to update the master date backlog; Manage a team that will provide missing data; Define potential new usage of the created reliable master data. Analysis of big data provided by the automation supplier of from our own

Bekijk vacature »

Junior C# Developer gezocht voor grote internation

Dit bedrijf is 42 jaar geleden ontstaan in Australië en telt 13 vestigingen wereldwijd. Sinds 5 jaar is bedrijf actief in Europa. Ze zorgen voor diverse IT solutions in de Automotive branche. In Australië beheren ze 80% van de markt en ook in Nederland zijn ze hard aan de weg aan het timmeren. Het bedrijf telt wereldwijd 550 FTE en op dit moment 13 FTE in Nederland, maar is er een duidelijke wens om te groeien. Je komt terecht in een multiculturele omgeving en waarbij Engels voornamelijk de voertaal is op de werkvloer. De sfeer is informeel en kom je

Bekijk vacature »

.NET developer / C# / MySQL Database regio Doetinc

.NET developer / C# / MySQL Database regio Doetinchem Functieomschrijving Ben jij een .NET ontwikkelaar die aan de slag wil gaan als .NET developer, maar ook veel te maken wil hebben met de klant? Dan ben je bij deze innovatieve, vooruitstrevende en internationaal georiënteerde organisatie in de regio Doetinchem aan het juiste adres. Je krijgt hier de mogenlijkheid om een creatief team versterken. Spreekt dit je aan reageer dan snel op deze volgende stap in jouw carriere! Jouw meest voorkomende werkzaamheden zijn: Het vertalen van wensen vanuit de business naar .NET oplossingen. Dit betekent dat je of bestaande modules gaat

Bekijk vacature »

Java Developer

Durf jij mee te delen in het succes van de no. 1 dienstverlener in Nederland op het gebied van IT? Wat kun je? Die vraag stelt ieder bedrijf dat op het punt staat iemand aan te nemen. Wie ben je? Die vraag stelt Sogeti meteen daarna. We vinden het belangrijk dat je bij ons past. Vooral qua mentaliteit. Een professional van Sogeti is namelijk geen gemiddelde professional. Het is er een met een aantal uitgesproken eigenschappen. Gedreven. Resultaatgericht. En niet snel tevreden. Wat niet wil zeggen dat je nooit met hem of haar kunt lachen. Integendeel. Plezier hoort wat ons

Bekijk vacature »

Medior .NET Developer (CQRS / Event Sourcing / Azu

Functieomschrijving Wil jij werken bij één van de top software ontwikkel clubs van Nederlandse bodem? Dit bedrijf heeft de afgelopen 20 jaar haar bestaansrecht bevestigd en verwachten het komend jaar een magische grens te bereiken qua omzet. Jij zal een belangrijke bijdrage leveren aan de bouw van een nieuw innovatief platform waar gebruikers zelf hun applicatie mee kunnen bouwen. Je denkt dan ook mee over de (cloud) architectuur van dit nieuwe platform. (CQRS, eventsourcing, DDD) Je ontwikkelt de software met een diversiteit aan technieken waar Microsoft technieken een groot onderdeel van uit maken. Zoals C#.NET, ASP.NET vNEXT, TypeScript en Azure.

Bekijk vacature »

Medior PHP Developer binnen een informele sfeer aa

Het bedrijf waar je voor aan de slag gaat is inmiddels al bijna 20 jaar op weg. In 1999 zijn zij tijdens de langzame digitale globalisering opgericht. Vandaag de dag is dit immers niet meer weg te denken. Het bedrijf geloofd in elk project en vindt dat alle projecten de kans van slagen moeten krijgen. Echter gaan ze nauwkeurig na wat de vraag is en wat de oplossing moet bieden. Ze denken tot het uiterst met de klant mee en gaan hier mee aan de slag. Op deze manier ben je zeer gevarieerd binnen de club bezig en ga je

Bekijk vacature »

Junior PHP Developer – Persoonlijke / Techni

In 1979 werd dit bedrijf opgericht in de financiële sector en in de assurantiewereld. Met bijna 200 gemotiveerde werknemers in dienst kennen ze een enorm sterke marktpositie in het specifiek segment. Het bedrijf opereert landelijk en is opgebouwd uit verscheidene afdelingen, zodoende kom je terecht in een sterk gepositioneerde organisatie en tevens een grote speler op de markt die graag investeert in jouw ontwikkeling! Functie-omschrijving Kwalitatieve code staat binnen het bedrijf voorop; code reviews zijn dan ook vanzelfsprekend. Samen met 10 medeontwikkelaars ga je aan de slag met het ontwikkelen van complexe uitgebreide systemen binnen een zeer gestructureerd team. Binnen

Bekijk vacature »

Oracle Middleware Developer

Wat je gaat doen: Wij zijn op zoek naar een Oracle Middleware Developer met kennis van/ervaring met onder andere SOA Suite 10G en/of SOA Suite 11G, WebLogic, BPEL Orchestration, Java, SOAP. Je bent bekend met de integratie laag gebaseerd op Oracle SOA Suite 10G. Als Middleware developer ben je verantwoordelijk voor de ontwikkeling van integratie tussen de diverse applicaties in het landschap, en de communicatie tussen de klant en andere stakeholders. Je werkt samen met het applicatie team, zoals functioneel ontwerpers en andere ontwikkelaars om de oplossing verder te ontwikkelen en te implementeren. Je collega’s werken onder andere met technieken

Bekijk vacature »

Pagina: 1 2 volgende »

Ozzie PHP

Ozzie PHP

28/01/2019 23:03:13
Quote Anchor link
Hoe kun je een externe value die door de gebruiker is ingevoerd, bijv. een POST of een GET parameter het beste 'opschonen'?

Stel je krijgt bijv. een $_POST['foo'] binnen. Hoe ontdoe ik die $_POST['foo'] dan van eventuele schadelijke karakters?
 
PHP hulp

PHP hulp

15/02/2019 21:11:04
 
Thomas van den Heuvel

Thomas van den Heuvel

29/01/2019 00:28:40
Quote Anchor link
Bij voorkeur laat je gebruikersinvoer ongewijzigd. Als je dit moet aanpassen ("opschonen") geeft dat toch al min of meer aan dat het niet de goede vorm had?

Als je de gebruiker geen foute invoer wilt laten geven kan het vaak helpen als je de gebruiker simpelweg geen keuze geeft; gebruik een radiobutton of dropdown voor invoer in plaats van een open tekstveld. Of construeer zelf nieuwe formulierelementen waarbij het beter vastligt wat "correcte" invoer is.

En dan heb je daar nog altijd validatie voordat je het formulier verwerkt. Keur "foute" invoer gewoon af als deze niet goed is.

Tot slot heb je escaping zoals htmlspecialchars() voor de HTML-context en real_escape_string() voor de (my)SQL(i)-context (en zo zijn er wel meer voor andere contexten). Als je dit consequent toepast kan data nooit iets kwaads uitspoken.

Dit alles bij elkaar lijkt mij beter dan wat jij probeert te doen wat veel lijkt op "escape on input". Dit is waarschijnlijk niet de oplossing voor jouw probleem. Het beste devies wat gegeven kan worden lijkt mij nog steeds "filter input, escape output" - en dit gewoon overal consequent toepassen.
Gewijzigd op 29/01/2019 00:31:04 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

29/01/2019 00:36:34
Quote Anchor link
Ik zal even toelichten wat ik bedoel ... ik bedoel eigenlijk of er iets generieks is waarmee je iedere input value kunt "schoonmaken". Ik wil dat verwerken in een functie of method, dat ik daar iedere POST waarde even doorheen gooi waardoor de kwalijke elementen eruit worden gefilterd. En met kwalijke elementen bedoel ik dan vreemde/verboden karakters (denk bijv. aan sql-injectie).

Ik heb het dus niet over het controleren van het datatype (is het een string, is het een getal enz.), maar puur over het wegwerken van schadelijke tekens. PHP heeft bijv. wat sanitize functies: http://php.net/manual/en/filter.filters.sanitize.php

>> Als je de gebruiker geen foute invoer wilt laten geven kan het vaak helpen als je de gebruiker simpelweg geen keuze geeft; gebruik een radiobutton of dropdown voor invoer in plaats van een open tekstveld.

Dat klopt wel, maar jij weet ook dat je dat kunt manipuleren en dat je dus nooit zeker bent van wat je binnenkrijgt.
 
Thomas van den Heuvel

Thomas van den Heuvel

29/01/2019 00:45:20
Quote Anchor link
Sanitizing manipuleert ook, dus dan pas je dingen aan, dus dan hadden ze eigenlijk al niet de goede vorm, net zoals bij typecasts :).

Quote:
kwalijke elementen

Deze verschillen per context. Dus als je gewoon escaped in de context waarin je deze data gebruikt is er niets aan de hand. Wat jij probeert te doen is alles escapen voor alle contexten waar je data mogelijk in gaat gebruiken? Dit is simpelweg niet praktisch. En zorgt ook voor problemen als je data later wilt bewerken, dan moet je mogelijk de escaping weer ongedaan maken. Het is gewoon handiger om de originele, rauwe, data op te slaan en deze gewoon op de juiste manier te behandelen wanneer je deze in een bepaalde context wilt gebruiken.

Quote:
Dat klopt wel, maar jij weet ook dat je dat kunt manipuleren en dat je dus nooit zeker bent van wat je binnenkrijgt.

Daarom zou je alles ook altijd (aan de serverzijde) moeten valideren als het van een voorgeschreven vorm dient te zijn.
 
Ozzie PHP

Ozzie PHP

29/01/2019 01:21:26
Quote Anchor link
Ik snap wel wat je bedoelt hoor, maar ik hoopte dat er een soort generieke opschoonfunctie bestond.

Dus stel je krijgt in plaats van een naam iets als "jan ' OR 1=1" binnen, dat die generieke functie daar dan bijv. "jan OR 1=1" van zou maken. Maar als een dergelijke generieke functie niet bestaat dan houdt het op.
 
Thomas van den Heuvel

Thomas van den Heuvel

29/01/2019 02:00:40
Quote Anchor link
Nee die is er bij mijn weten niet.

Daarnaast is het ook geen goede oplossing om schadelijke karakters te verwijderen, omdat je daarmee effectief de oorspronkelijke invoer aanpast wat sowieso niet iets is wat je zou moeten doen. Escapen in het gebruik lijkt mij beter. Op die manier pas je de mogelijke betekenis van invoer ook niet aan. Als iemand een enkele quote bedoeld dan is het niet aan het programma om te "second guessen" wat dit betekent. De data dient enkel veilig in het gebruik te zijn. Bedoelde de gebruiker toch iets anders dan een quote kan 'ie deze gewoon aanpassen of krijgt 'ie te horen dat dit onjuiste invoer is nog voordat er iets wordt opgeslagen.

Beschouw het als het dragen van kleding. Je past deze aan aan het weer, je draagt niet alles over elkaar aan om maar voorbereid te zijn op elk weertype...
Gewijzigd op 29/01/2019 02:02:51 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

29/01/2019 10:08:30
Quote Anchor link
>> je draagt niet alles over elkaar aan om maar voorbereid te zijn op elk weertype...

Hmm ... misschien een gat in de markt? ;-)

Thanks voor je antwoord!
 
Rob Doemaarwat

Rob Doemaarwat

29/01/2019 15:46:28
Quote Anchor link
Ozzie PHP op 29/01/2019 01:21:26:
Dus stel je krijgt in plaats van een naam iets als "jan ' OR 1=1" binnen, dat die generieke functie daar dan bijv. "jan OR 1=1" van zou maken.

Ik doe juist het omgekeerde. Als ik in een parameter iets meekrijg wat ik niet verwacht (dus bijvoorbeeld iets-wat-geen-cijfer-is in een numeriek ID), dan krijgt zo iemand een vinkje (sessie, IP, ...). Bij meer dan x-vinkjes binnen een bepaalde tijd: voor een bepaalde tijd buitengesloten.

Niet alleen om die "prutsers" een beetje terug te pesten, maar andersom weet je het ook maar nooit. Het is elke week weer een keer maandagochtend, en je kunt natuurlijk altijd iets over het hoofd zien. Op deze manier kunnen ze in ieder geval niet heel veel proberen binnen een bepaald tijdsbestek (en dan heb ik ondertussen wel een keer de tijd gehad om me over het log te buigen).

Voorbeelden van dingen die "niet mogen":
- HTML opmaak (of in ieder geval <script> tag) in "normale tekstvelden" (bijvoorbeeld naam).
- <script> tag of accolades in user-agent string.
- ".." in iets wat naar een bestandsnaam vertaalt/verwijst.
Niet dat dit alles tegen houdt, maar het zet in ieder geval de rem op de "prutser" die z'n lijstje met mogelijke aanvalsvectoren eens langs loopt.
 
Ozzie PHP

Ozzie PHP

29/01/2019 16:16:30
Quote Anchor link
Ik snap wat je zegt Rob, maar dat kun je dus niet generiek (algemeen geldend) doen. Want dan krijg je wat Thomas zegt. Stel iemand schrijft een bericht met daarin .. "Ik stond daar .. en toen ineens". Dat is in dat geval valide input, maar in het geval van een bestandsnaam niet.
 
Thomas van den Heuvel

Thomas van den Heuvel

29/01/2019 16:50:38
Quote Anchor link
Als je foute rommel wilt weren, schrijf dan voor wat wel mag (whitelist) in plaats van wat niet mag (blacklist). Nadeel van laatstgenoemde methode is dat deze effectief nutteloos is als je een "illegale case" vergeet.

Ik snap de redenering van @Rob ook wel, het kan soms handig zijn om je voelsprieten te gebruiken maar daarmee geef je wel een waardeoordeel over ingevoerde data. En dat is interpretatie. De betekenis hangt dan ook weer af van de (mogelijk taalkundige) context waarin je deze gebruikt. Code en machines zijn daar niet zo sterk in, en het lijkt mij al helemaal lastig om hier iets generieks voor te maken.

Over dat "iets-wat-geen-cijfer-is in een numeriek ID". Hier kun je op verschillende manieren mee omgaan. Stel dat je een lap code hebt waarmee je een record kan ophalen: code.php?id=xyz. Nu kun je wél aannames doen, sterker nog, je mag hier afdwingen dat $_GET['id'] (xyz) een auto-increment id is. Hier kun je dus, nog voordat je een query uitvoert, $_GET['id'] valideren (filter input). Maar wat voor controle gebruik je hier? is_numeric()? filter_var() (met extra parameters zou dit kunnen wellicht)? Wat ook geregeld gebeurt is dat $_GET['id'] simpelweg getypecast wordt naar een integer.

Maar in sommige van deze "validaties" pas je dus mogelijk de invoer aan, dus dat zou dan al inhouden dat de oorspronkelijke vorm niet goed was. Op dat moment ben je dus mogelijk een query aan het uitvoeren die weliswaar syntactisch correct is, maar semantisch onzinnig is en/of nooit een (zinnig) resultaat zal opleveren.

De code zou zo moeten werken dat de query uberhaupt niet werd uitgevoerd indien de invoer niet van de goede vorm was. Of dus meer in het algemeen: is de invoer niet van het goede formaat dan mag je alles gewoon staken. Dit eindeloos proberen te (her)verpakken en om te vormen (en op voorhand "veilig" te maken) is eigenlijk niets meer dan recht proberen te buigen wat al krom was, en zelfs dan is er geen garantie voor succes omdat je simpelweg niet weet of de omzetting wel iets opleverde wat zowel geldig maar ook zinnig (en ook als zodanig bedoeld) was.

Omdat machines niet sterk zijn om te bepalen wat je eigenlijk bedoelde, kun je ze beter precies vertellen wat je bedoelde. En als dit niet voldoet: computer says no. Try again.

Eigenlijk zou een gebruiker gewoon vrij moeten zijn wat deze ergens invult, binnen de kaders die daarvoor bestaan. Treedt iemand echter buiten de gebaande paden moeten ze niet vreemd opkijken als ze op den duur poep aan de schoenen hebben.
Gewijzigd op 29/01/2019 16:53:03 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

29/01/2019 17:12:43
Quote Anchor link
>> Hier kun je dus, nog voordat je een query uitvoert, $_GET['id'] valideren (filter input). Maar wat voor controle gebruik je hier? is_numeric()? filter_var() (met extra parameters zou dit kunnen wellicht)?

Wat is volgens jou in zo'n geval de beste validatie en waarom?

>> De code zou zo moeten werken dat de query uberhaupt niet werd uitgevoerd indien de invoer niet van de goede vorm was.

Dat is inderdaad ook mijn insteek. En toch zie je soms best opmerkelijke dingen.

Dan wordt bijv. www.schoenenkopen.nl/product.php?id=poepschoen onderwater keurig getypecast naar een integer met waarde 1 waardoor je daadwerkelijk een product krijgt te zien.
 
Ward van der Put
Moderator

Ward van der Put

29/01/2019 18:04:12
Quote Anchor link
Ozzie PHP op 29/01/2019 17:12:43:
Dan wordt bijv. www.schoenenkopen.nl/product.php?id=poepschoen onderwater keurig getypecast naar een integer met waarde 1 waardoor je daadwerkelijk een product krijgt te zien.

Nee, dat is 0. ;-)

https://3v4l.org/qP2DQ

Je voorbeeld geeft wel duidelijk aan dat de vraag bepaalt wat vervolgens acceptabele antwoorden op die vraag zijn.

Enne, 42 is het antwoord op alles.
 
Ozzie PHP

Ozzie PHP

29/01/2019 19:22:53
Quote Anchor link
Haha lol ... ik had verwacht dat ie naar 1 zou typecasten, hahaha.
 
Thomas van den Heuvel

Thomas van den Heuvel

29/01/2019 19:47:42
Quote Anchor link
Quote:
Wat is volgens jou in zo'n geval de beste validatie en waarom?

Eh, je zou filter_var() kunnen gebruiken I suppose, maar ik gebruik een regexp.

Dit is niet zozeer "het beste", maar "het doet wat ik wil en wat de bedoeling is": een positief geheel getal met ten minste de waarde "1". Dit is wat het (zou) moet(en) zijn, dus dat is waar ik op controleer.
 
Ozzie PHP

Ozzie PHP

29/01/2019 20:48:10
Quote Anchor link
>> maar ik gebruik een regexp.

Kun je eens laten zien hoe?
 
Thomas van den Heuvel

Thomas van den Heuvel

29/01/2019 21:04:10
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function isIndex($in) {
    return preg_match('#^[1-9][0-9]*$#', $in) === 1;
}

?>


Gotcha/little known fact: het meta karakter $ accepteert ook één linefeed karakter (\n), dus wellicht doe je er nog verstandig aan om $in te trimmen.

Alternatief is filter_var, maar blijkbaar boeit het die validatiefilter ook niet of er een linefeed in zit...
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
19
20
21
22
23
24
25
26
27
28
29
<?php
$test
= "12\n";

function
isIndex($in) {
return preg_match('#^[1-9][0-9]*$#', $in) === 1;
}

if (isIndex($test)) {
    echo 'waffles<br>';
    var_dump($test);
}
else {
    echo 'no waffles<br>';
    var_dump($test);
}


?>
<hr><?php

function isIndexToo($in) {
    return filter_var($in, FILTER_VALIDATE_INT, array('min_range' => 1));
}


$result = isIndexToo($test);
if ($result === false) {
    echo 'no waffles<br>';
    var_dump($result); // false
} else {
    echo 'waffles<br>';
    var_dump($result); // typecast to int
}
?>
 
Rob Doemaarwat

Rob Doemaarwat

29/01/2019 21:11:09
Quote Anchor link
Andersom gaat filter_var wel weer goed met arrays om (geeft er geen warning op), terwijl:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$in = $_GET['id'] ?? 1;
preg_match('#^[1-9][0-9]*$#', $in); //<- warning bij ?id[]=1
 
Ozzie PHP

Ozzie PHP

29/01/2019 21:15:15
Quote Anchor link
thanks :)

@rob ... je zou dan dus nog moeten testen of het een string is bedoel je?
Gewijzigd op 29/01/2019 21:17:06 door Ozzie PHP
 
Rob Doemaarwat

Rob Doemaarwat

29/01/2019 22:02:41
Quote Anchor link
Of bijvoorbeeld is_scalar().
 
Thomas van den Heuvel

Thomas van den Heuvel

29/01/2019 22:16:29
Quote Anchor link
Ozzie PHP op 29/01/2019 21:15:15:
je zou dan dus nog moeten testen of het een string is bedoel je?

Alles in $_GET en $_POST is sowieso een string als het geen samengesteld type (array) is.
 
Ozzie PHP

Ozzie PHP

29/01/2019 22:44:54
Quote Anchor link
>> Of bijvoorbeeld is_scalar().

Ah oké.

>> Alles in $_GET en $_POST is sowieso een string als het geen samengesteld type (array) is.

Ja klopt, maar het kan dus ook een array zijn.
 

Pagina: 1 2 volgende »



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.