externe input 'opschonen'

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Medior ASP.NET Developer

Vacature Omschrijving Dit bedrijf is 15 jaar geleden opgericht en hun doel is bedrijven te helpen om beter te worden in wat ze doen. Hoe doen ze dit? Door zich te richten op de communicatie, online en offline events. Zij nemen deze zorgen uit de handen van hun opdrachtgevers en geven de opdrachtgevers de ruimte om zich te focussen op de corebusiness. Momenteel bestaat dit bedrijf uit ruim 50 medewerkers en drie filialen, maar ze zijn superhard aan het groeien. Er heerst een no-nonsense mentaliteit en zijn grenzeloos nieuwsgierig. Functieomschrijving Je zult je als ASP.NET Developer vooral bezighouden met het

Bekijk vacature »

CMS Developer / Sitecore / C# / DevOps

Functieomschrijving Ben jij een Developer met kennis van C# / .NET en wil jij je graag specialiseren op het gebied van Sitecore? Doe jij dit het liefst binnen een gerenommeerde organisatie in de zorg? Dan is dit dé uitdaging voor jou! Binnen deze rol zal jij je als C# / .NET Developer (met de focus op SiteCore) gaan richten op het ontwikkelen van webapplicaties, platformen en portalen middels o.a. C#, Azure en Microservices die door duizenden mensen gebruikt worden? Reageer dan nu! Het ontwikkelen van webapplicaties, platformen en portalen middels o.a. C#, Sitecore, Azure en Microservices; Het leveren van jouw

Bekijk vacature »

Medior Back-end Developer

Ben jij een programmeur die houdt van afwisseling? Heb jij inmiddels wel genoeg aan hetzelfde moeten werken? Non-stop dezelfde technieken, onderhoud en bug fixing? Wil jij juist werken met de laatste technieken, afwisselende werkzaamheden en nieuwe projecten? Wil jij graag zoveel mogelijk leren van het hele .NET spectrum en op dit punt in je carrière je kennis verbreden in plaats van verdiepen op een aspect? En dit allemaal in een in-house functie met een vast team en veel senioriteit om je heen om van te leren? Dan ben je gegarandeerd geïnteresseerd in deze uitdaging. Lees dus snel verder! Organisatie Deze

Bekijk vacature »

PHP lead worden? Reageer!

php, developer, utrecht Functieomschrijving Je komt als PHP ontwikkelaar een rol waarbij jouw stem heel erg belangrijk gaat zijn rondom de nieuwe applicaties. Ze gaan binnenkort alle huidige applicaties helemaal opnieuw opzetten en hierbij gaan ze gebruik maken van actuele en recente technologie. Naast Symfony als framework zullen ze ook nieuwe front-end tools gaan inzetten. Je krijg hier veel ruimte om jezelf binnen je team te ontwikkelen en er zijn veel mogelijkheden om door te groeien binnen dit bedrijf. Functie-eisen - HBO niveau - ruime PHP ervaring - ervaring met een framework en bij voorkeur met Symfony - TDD ervaring

Bekijk vacature »

Medior Python Developer AI Software Maarssen

Organisatie Dit bedrijf is 2012 ontstaan om volledig serverless maatwerk te bouwen voor hun klanten. Inmiddels doorgegroeid tot een serieuze speler en 160 man groot. Ze hebben onlangs een fusie gehad met een ander cloud technology bedrijf waardoor ze niet alleen het beste programmeerwerk kunnen leveren maar ook de infrastructuur waar het op draait. Op dit moment hebben ze een vestiging in Engeland en Duitsland (no worries, Brexit biedt kansen geen tegenslagen). Wat hun onderscheidt van de meeste bedrijven die maatwerk software bouwen is dat zij een specialisatie hebben richting data en data science. De projecten hier varieren ook van

Bekijk vacature »

Medior C# .NET Developer met ASP.NET en C# ervarin

Bedrijfsinfo Voor een jonge enthousiaste developer is dit de ideale omgeving! Je komt te werken in een innovatieve organisatie die marktleider is in Nederland in het leveren van boekhoudkundige software voor honderden bedrijven. Deze organisatie is 4 jaar geleden gestart door twee ondernemers die de grondleggers zijn van de moderne maatsoftware zoals we die nu kennen. De organisatie is sinds het ontstaan gezond blijven groeien, momenteel zijn er 12 werknemers werkzaam waarvan er 3 werkzaam zijn op de development afdeling. Deze afdeling bestaat uit jonge enthousiaste developers die onderdeel willen zijn van het grotere geheel. Naast dat deze producten in-house

Bekijk vacature »

Medior full-stack .NET developer

Organisatie De organisatie richt zich vooral op het MKB die actief zijn op het gebied van telemarketing, handel en procesindustrie; kortom alle mogelijke MKB die zijn bedrijfsprocessen uitvoert aan de hand SAP-based applicatie’s. Het bedrijf bestaat inmiddels 25 jaar en is een van de grootste speler op de markt. Doel is om een partner te zijn zoals het bedoeld is, namelijk; betrokken en resultaatgericht. Toegevoegde waarde ligt op terrein van advies, implementatie, consultancy, aftersales en support. De groeipijl staat bijna verticaal, met die reden is er plek voor een full-stack developer. Voorkeur gaat uit naar een front-end developer die naar

Bekijk vacature »

Senior PHP developer / PHP Bastards

Jij hebt al een aantal jaren werkervaring in de PHP wereld en twijfelt over de stap naar freelance… Want hoe lekker is het als je in overleg met de eindgebruiker je tijden kan bepalen, je veel vrijheid hebt, bij alleen toonaangevende organisaties terecht komt en ook nog eens DIK betaald krijgt? Voor veel ontwikkelaars is dit toch net een stap te ver. Zij willen gewoon lekker code kloppen en zich niet bezig houden met het regelen van opdrachten, administratieve zaken of andere randzaken. Klinkt dit bekend? Wij bieden de middenweg! Wie zijn wij van PHP Bastards? Wij zijn niet het

Bekijk vacature »

Medior PHP developer / Maatwerkplatform

Organisatie De business partner waarmee wij in contact staan is gevestigd in Lelystad en marktleider in hun niche. Naast dat het kantoor van alle gemakken is voorzien zit het op een locatie die ook nog is gemakkelijk te bereiken is. Op dit moment bestaan zij ruim 15 jaar en hebben zo’n 50 man in dienst. Hun missie is het leven van de klanten makkelijker te maken. Hun manier van werken omschrijven zij als eenvoudig, eerlijk en eigenwijs. Zij bieden betrouwbare producten en diensten van hoge kwaliteit zodat jij er zelf iets moois van kunt maken zonder afhankelijk te zijn van

Bekijk vacature »

SharePoint / C#.Net / Ontwikkelaar / Developer / P

Functieomschrijving Heb jij ervaring met SharePoint, JavaScript, C# of ASP.NET en wil je werken aan een SharePoint platform waar meer dan 10.000 mensen dagelijks mee werken? Dan is dit wellicht interessant voor jou! SharePoint Office 365 JavaScript TypeScript PowerShell #C ASP.NET Programmeren in SharePoint 2013 / SharePoint 2016 (en binnenkort SharePoint 2019); Bouwen van nieuwe software; Ombouwen van bestaande software; Oplossen van derdelijns incidenten; Maken van een technisch ontwerp; Software refinement; Testen van nieuwe en bestaande software; Werken aan diverse projecten zoals een mobiele applicatie, webapplicaties, CMS-systeem en eCommerce. Functie-eisen Je bent een ervaren Microsoft developer; Je hebt ervaring met

Bekijk vacature »

Senior C# .NET developer import- exportbranche

Organisatie Deze organisatie is gevestigd in de omgeving van Eindhoven. Deze organisatie is een van de grootste leveranciers van maatwerksoftware binnen de import en export branche. Wanneer je als organisatie wereldwijd aan klanten levert krijg je te maken met de douane. Alle producten die naar het buitenland worden verstuurd moeten worden geregistreerd. Deze organisatie heeft eigen unieke software ontwikkeld om dit proces te automatiseren. Deze organisatie is marktleider op het gebied van import- en export software. Het is een open organisatie die veel waarde hecht aan jouw mening en ervaring. Functie Het team bestaat uit vijf ervaren developers. Van de

Bekijk vacature »

Junior Developer

Wil jij graag zij aan zij met de directeur het verschil maken? Om hem vervolgens in de pauze een ‘3-0 jantje’ te geven met FIFA? Lees dan snel verder! Organisatie Deze organisatie is een ambitieuze startup in de regio van Purmerend en Heerhugowaard. Zij willen de wereld elke dag een beetje beter maken met het platform wat zij bouwen. De missie van dit bedrijf is dan ook: Improve every day. Zij geloven dat ze dat kunnen realiseren door bedrijven te helpen beter feedback te verzamelen en hier naar te luisteren. Het uitgangspunt van dit bedrijf is dat goede feedback verzamelen

Bekijk vacature »

Junior PHP Developer award winnende webshop

Deze award winnende webshop is op zoek naar een Junior / Medior PHP Developer! Je gaat werken aan de interne e-commerce systemen die voor meer dan 42 bv’s de ruggengraat zijn van de onderneming. Het systeem waar de applicaties voor ontwikkelt worden heeft oneindig veel mogelijkheden aan jou de taak om de mogelijkheden te ontdekken. Organisatie Het team gevoel staat centraal binnen deze organisatie. Dit wordt ook direct de eerste dag duidelijk; Zodra je ingewerkt word draai je overal even mee. Je helpt met orders verwerken in het magazijn, kijkt mee hoe verkoop zijn ding doet en gaat in gesprek

Bekijk vacature »

Mid-level C# .Net Developer for an international f

For a fast-growing e-commerce company, we are looking for a C# .Net Developer. With the most complete marketplace management suit the company facilitates over 3 million products from 1500 brands to over 100 marketplaces. To name a few of their clients you can think of Amazon, Bol.com, eBay, Gall&Gall, etc. As a developer, you work with an experienced and driven team of 5-6 colleagues. You will develop new functionalities and links on the scalable platform with C#, ASP.NET MVC, MS SQL as well as newest technologies such as .Net Core. The team follows SCRUM principles. Do you have what it

Bekijk vacature »

Full stack .NET developer

De organisatie Dit bedrijf is ontstaan om een oplossing te bieden in HR en salarisadministratie. Wat altijd traag en lastig moest zijn, werd met hun software pakket ineens makkelijk, snel en vooral effectief! Inmiddels is de webapplicatie uitgegroeid tot meer dan 1 miljoen gebruikers en marktleider binnen hun sector. De software oplossing geeft de mogelijkheid om binnen de HR en salarisadministratie alles van A tot Z te kunnen beheren in één overzichtelijke applicatie. Innovatie en kwaliteit staan centraal in deze organisatie. Daar ligt dan ook hun onderscheidend vermogen. Door dit grote succes en bewezen resultaat op de markt, liggen er

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

20/08/2019 21:35:35
 
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.