externe input 'opschonen'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Young Professional Front-end Developer

Jij weet wat er nodig is. Jouw hart gaat sneller kloppen van techniek. Jij wil vooruit. Vacature Front-end Developer per 1-7-2019 Je bent creatief, thuis in gebruikersinteractie en een gedreven developer in hart en nieren. Daarnaast heb jij een klantgerichte en proactieve houding. Precies de kwaliteiten die een Front-end Developer nodig heeft. Aan de slag als Young Professional Front-end Developer Als Front-end Developer werk je aan de technische realisatie van front-end (web)applicaties in de verschillende uitdagende opdrachten voor Sogeti’s klanten. Dit kan zowel op klantlocatie zijn, als intern bij Sogeti. Jij houdt van het uitdenken en implementeren van responsive (web)

Bekijk vacature »

Junior Developer

Bedrijfsinformatie Deze jonge, informele organisatie is op zoek naar een versterking. Ze geloven in het intern opleiden van ontwikkelaars zodat ze op de lange termijn onderdeel kunnen worden van dit hechte team. Dit is dus jouw kans! Deze organisatie is sinds 1.5 jaar flink aan de weg aan het timmeren maar wil ook klein blijven om zo het hechte teamverband te behouden. Je moet er dus op tijd bij zijn voor deze functie! Deze organisatie specialiseert in maatwerk voor klanten. Hierin hebben ze een aantal grote klanten in de commerciële sector maar ook kleinere MKB bedrijven. Deze organisatie richt zich

Bekijk vacature »

Junior backend developer

Jouw functie: Junior / Medior Developer Wil jij graag werken met de nieuwste tech-stack met technieken als NodeJS, Angular2 en ElasticSearch? Schrijf jij graag schaalbare en goed onderhoudbare code en wil jij werken met automated testing en continious integration? Wil jij ervaring opdoen op een hightraffic platform waar je met veel data gaat werken? Wil jij begeleid worden door een aantal ervaren mentoren? Organisatie Opgericht vanuit het oogpunt de wereld een betere plek te maken en onze volgende generaties ook van de wereld te kunnen laten genieten is deze startup enkele jaren geleden opgericht. Dit online platform zorgt ervoor dat

Bekijk vacature »

Oracle Apex Ontwikkelaar

Wat je gaat doen: Als Oracle Ontwikkelaar werk je zowel zelfstandig als in teamverband aan het ontwikkelen en ontwerpen van software componenten. Je levert een bijdrage aan de ontwikkeling tot en met de implementatie. Je bent in staat om informatie te verzamelen,te analyseren en te documenteren van wensen en eisen van de eindgebruikers. Je bent in staat om functionele vereisten te vertalen naar technische specificaties, ontwikkelt web applicaties met behulp van Oracle Applicatie Express, door de veranderingen en ontwikkelingen van web formulieren en rapporten. Verbeteren van bestaande Oracle Apex Systemen. Ontwikkelen en veranderen van Oracle 11g database schema’s. Schrijven van

Bekijk vacature »

Java Developer

Ben jij een Junior/medior Java developer uit de regio van Diemen met affiniteit voor data analyse en het bouwen van slimme systemen? Wil jij het liefst werken met slimme medewerkers om jou heen zoals Econometristen, Software Engineers en Data Analisten om nog meer te leren? Onze opdrachtgever is een zeer interessant bedrijf die E-business strategieën realiseert en optimaliseert. Hun software maakt grote datastromen gemakkelijk inzichtelijk en voorspelbaar voor hun eindklanten die zich over de hele wereld bevinden. Big Data en data-analyse is de core business. Dit bedrijf biedt jou veel kansen om mee te groeien met de organisatie en je

Bekijk vacature »

Junior .NET Software Developer

Organisatie Als .NET developer ga jij aan de slag bij HET bedrijf op het gebied van automatiseringen binnen de zorgsector. Je gaat hierbij bouwen aan maatwerkapplicaties voor verschillende klanten in heel Nederland. Dit doe je als een .NET C# Full-stack developer met de focus op de backend. De organisatie is al ruim 20 jaar bezig met het automatiseren van de zorg binnen Nederland. De verschillende teams binnen dit bedrijf werken nauw samen met hun eindgebruikers om zo gezamenlijk tot het beste eindproduct te komen. Je bent samen met je team van A tot Z verantwoordelijk voor het eindresultaat. Teamspirit is

Bekijk vacature »

Medior C#/.NET Developer

Schrijf jij liever code dan een sollicitatiebrief, spreek jij vloeiend .Net en weet jij analytisch vermogen te combineren met creativiteit? Dan bieden wij voor jou de ideale vervolgstap! Voor een van onze business partners zijn wij hard op zoek naar een Medior C#/.Net Developer die hun platform naar een ‘’next level’’ kan tillen. Organisatie: Onze business partner is gevestigd in het centrum van Amsterdam, op loopafstand van het Centraal Station. De bedrijfscultuur/structuur is het best te omschrijven als plat, open en informeel. Dit blijkt uit het feit dat hier dagelijks goed voor je gezorgd wordt, vers fruit is altijd beschikbaar,

Bekijk vacature »

Junior full-stack .NET C# software developer, soft

Voor een organisatie in Den Haag zijn we momenteel op zoek naar een full stack .NET C# developer. Het gaat om een bedrijf dat de afgelopen 5 jaar druk bezig is geweest om de basis te leggen voor een online platform met betrekking tot de vraag en aanbod van een specifieke maatschappelijke doelgroep. Met een succesvol draaiende website, reeds 50.000 bezoekers per maand en het vertrouwen van een grote investeerder zijn ze de start-up fase inmiddels voorbij. De bedrijfscultuur daarentegen wordt nog steeds gekenmerkt door een energiek, enthousiast en gedreven team met korte lijnen en een duidelijke visie. Spreekt een

Bekijk vacature »

Java Backend Developer

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 werk je mee aan de architectuur laag. Daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het software ontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je ondersteunt de software architect en projectleider bij hun werkzaamheden. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak

Bekijk vacature »

Technisch Ontwerper / Applicatieontwikkelaar max.

Uitdagende projecten, afwisseling, de zekerheid van een vast contract en groei is wat CIMSOLUTIONS jou onder andere biedt. Benieuwd hoe wij dit aanpakken? Kom op woensdag 17 april naar ons ICT Professional Event, op 7 locaties in Nederland. Tijdens deze avond kun je naast een hapje en een drankje onze sfeer komen proeven. Maak kennis met CIMSOLUTIONS, onze collega’s en beleef de ervaringen van onze ICT specialisten én de projecten waar zij het verschil maken. Kijk voor meer informatie en/of aanmelden op: https://www.cimsolutions.nl/nl/Evenement/CIMSOLUTIONS-ICT-Professionals-Event Wie zoeken we? Je bent de beste in je vak of hebt de ambitie en de potentie

Bekijk vacature »

Xamarin Developer regio Utrecht

‘Duurzaamheid is geen begrip. Duurzaamheid is een mindset’ Hoe vaak stap je s’ ochtends de auto in op weg naar je werk, denkend aan hoe slecht het is voor het milieu dat je weer de auto pakt. Je weet dat je ook prima met de fiets naar je werk kan, maar het is zo lekker snel en gemakkelijk. Maar heb je er weleens over nagedacht hoeveel CO2 je de lucht in slingert door dat ritje naar je werk? En hoeveel calorien je verbrandt als je een keer de fiets pakt? Men zegt altijd dat milieubewust handelen een kwestie is van

Bekijk vacature »

Netwerk Engineer

Netwerk Engineer Functie eisen Must haves HBO werk- en denkniveau Werkervaring in complexe IT-omgevingen Minimaal 3 jaar ervaring als netwerk engineer Kennis en ervaring met security infrastructuren Ervaring met netwerkprotocollen, firewalls, switches, routers, wireless en load balancers Kennis en ervaring met netwerkmanagement en network monitoring tools Het kunnen overleggen van een Verklaring Omtrent Gedrag (VOG) Uitstekende communicatieve vaardigheden in zowel Nederlands als Engels Nice to haves Ervaring met projectmatig werken en het werken in een Agile omgeving Een of meer van de volgende certificeringen op dit niveau (óf de bereidheid deze te behalen); Cisco CCNP, CCDP, Checkpoint CCSE Kennis en

Bekijk vacature »

Mobile Web Developer

Apps om te betalen met je vingerafdruk, de rekening in de bar te delen of je huiskamer een sfeer kleurtje te geven met licht! Wil jij Mobile Apps realiseren die mensen echt raken? Apps maken die het leven van ons als gebruikers vereenvoudigen? Wij stellen onszelf ten doel dat we op elke smartphone in NL een App van onze hand kunnen aanwijzen. En jij? Wil jij dat soort gave projecten ook doen bij de Nederlandse topbedrijven? Impact met Apps Bij Sogeti Mobile zitten we super dicht op de huid van de gebruiker. We leveren gebruiksvriendelijke oplossingen op jouw favoriete kanaal.

Bekijk vacature »

C# developer

C# developer koppelingen en uitbreidingen ERP en Document Management Software Locatie Op kantoor in Nijmegen, vanuit huis, bereidheid om incidenteel op locatie van de klant complexe applicaties live te zetten of support te verlenen hierop Contactpersoon Roel Kavelaar rkavelaarATsearch-consult.nl ph:0243528815 ph:0644949337 Organisatie Organisatie ondersteunt haar klanten door maatwerk koppelingen en uitbreidingen te bouwen op ERP en Document Management systemen. Hiervoor wordt gebruik gemaakt van eigen software maar ook van bestaande apps en plugins. Er wordt gewerkt met Visual Studio .NET in C# en SQL Server. Verantwoordelijk voor Programmeren van koppelingen in ERP en Document Management Systemen Programmeren van uitbreidingen op

Bekijk vacature »

Junior C# Developer Azure

‘Als je ergens de beste in wilt zijn, moet je bereid zijn dingen te doen die andere developers niet willen doen’ – Michael Phelps Een bekende uitspraak binnen de top organisaties die deze branche rijk is. Succes komt je niet aanwaaien; succes is een pad die je volgt en voor deze organisatie ben ik op zoek naar die developer die graag deze volgende stap zet binnen zijn glansrijke carrière! Voor een van mijn partners ben ik op zoek naar de beste Junior C# developer van Nederland. Zij bieden een uniek traineeship aan waar uitsluitend met de nieuwste technieken wordt gewerkt.

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

25/04/2019 10:57:43
Honeypot
 
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.