Filterfuncties sanitize, validate, etc. betrouwbaar?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Functioneel applicatiebeheerder - SOP-SYS-SAM

TenneT is hard groeiend om de onze ambities waar te kunnen maken. Zo nemen wij een leidende rol in het aanjagen van de energietransitie. Het werven van nieuw talent speelt daarin een cruciale rol. Wij zijn op zoek naar een gedreven Functioneel Applicatiebeheerder op onze locatie Arnhem die hieraan wil bijdragen en misschien ben jij dat wel? Jouw bijdrage aan TenneT Je gaat samenwerken in een team van circa 15 functioneel applicatiebeheerders en gaat onderdeel uitmaken van een DevOps team. Met dit team ga je applicaties (laten) ontwikkelen en beheren. Hierbij concentreer je je vooral op de functionele aspecten, zodat

Bekijk vacature »

Software programmeur

Functieomschrijving Voor een uitdagende werkgever in regio Breda zijn wij op zoek naar een Full Stack C#.NET programmeur. Je bent verantwoordelijk voor het ontwikkelen van apps, webapplicaties en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere developers en engineers om de sensoren in machines te scannen en vervolgens de data om te zetten in management informatie voor de klanten. Taken en verantwoordelijkheden: Je gaat aan de slag met de volgende technologieën en frameworks: C#, JS frameworks, HTML, TypeScript, SQL & C++, CSS. Geen ervaring met één van deze technologieën is dan ook geen enkel probleem! Deze werkgever biedt

Bekijk vacature »

.Net ontwikkelaars voor de zorgsector

Bedrijfsomschrijving Voor onze klant in de omgeving van Zwolle zijn wij op zoek naar een ervaren .Net ontwikkelaar, bij voorkeur met ervaring binnen de belangrijkste sector van Nederland, namelijk: de zorgsector. Deze internationale organisatie ontwikkelt software voor de zorgsector. Er werken zo'n 25 medewerkers hard aan een oplossing die gebruikt wordt door heel Nederland. Er heerst een informele sfeer waarbij er altijd ruimte is voor een grapje. Je collega's zijn stuk voor stuk sterke ontwikkelaars vanuit verschillende achtergronden en met verschillende leeftijden. Je komt hier terecht in een organisatie die zich hard inzet om de zorgsector te verbeteren. De mogelijkheden

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

Bekijk vacature »

Software Developer / .NET / Azure

Dit ga je doen Als Lead .NET Software Developer zal je je bezig houden met: Het vertalen van bedrijfswensen naar een technische roadmap; Uitwerken van nieuwe architectuur / designs; Het team aansturen en motiveren; Toezien op de kwaliteit van de code; Mee ontwikkelen van nieuwe features en applicaties. Hier ga je werken Deze organisatie is op dit momenteel marktleider in het ontwikkelen van productielijnen voor de voedselindustrie en heeft een wereldwijd klantnetwerk. Binnen deze organisatie is het team van software developers dagelijks bezig met het ontwikkelen van maatwerk oplossingen om alle productiemachines aan te sturen, maar ook bedrijf kritische applicaties

Bekijk vacature »

Senior Front-End Developer

Als Senior Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Senior Front-End Developer bij Coolblue? Als Senior Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Senior Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Nadenken

Bekijk vacature »

Senior Front end developer Angular

Functie Er zijn momenteel 5 SCRUM-teams waarvan drie gefocust zijn op DevOps en de huidige projecten en twee op innovatie van de platformen. Jij zal onderdeel worden van het innovatie Scrum team. De 2 multidisciplinaire innovatie teams bestaan momenteel uit 14 werknemers. Jij als senior Front end developer wordt onderdeel van onze innovatieteams. De innovatieteams houden zich bezig met het door ontwikkelen van de huidige producten en denken na over nieuwe functionaliteiten. Binnen de rol van Front end developer krijg je veel vrijheid en kan je je dag zelf indelen. Dingen waar jij je dagelijks mee bezig zult houden is

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Als junior .NET Developer lever je met jouw oplossingen direct een bijdrage aan de bedrijfsprocessen van de klanten. Werkzaamheden waar jij je zoal mee bezig houdt zijn; Het ontwikkelen, onderhouden en optimaliseren van de draaiende platforms van de klanten; Softwareontwikkeling middels C#, .NET; Klantcontact om de wensen te bespreken en uit te werken; Optimaliseren van de (huidige) bedrijfsprocessen; De IT-afdeling bestaat uit 30 personen verdeeld over 3 teams. Het team waar je in terecht komt bestaat uit ongeveer tien man. Het is een team wat bestaat uit betrokken collega’s, waar iedereen bereidt is om elkaar te

Bekijk vacature »

Web Application Developer

Dit ga je doen Samen met het team werk je aan de visualisatie functionaliteiten en hoe dit gebruikt kan worden in een operationele setting; Het ontwerpen, ontwikkelen, onderhouden en leveren van support betreft het Warehouse Management Systeem en de bijbehorende web visualisaties; Je gebruikt hierbijde tools WebGL en ASP.net; Het meewerken in implementatieprojecten; Het leveren van Go-Live Support; Sparren met jouw Amerikaanse collega's. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Web Application Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

.NET developer

Functie Als .NET developer werk jij samen in een multidisciplinair ontwikkel team met 1-2 Senior .NET developers, twee front-end developers, Data Scientists en één UX designer. Als team werken jullie aan het ontwikkelen van een Cloud based applicatie en aan het stabieler maken van deze applicatie. Ook unit testing gaat erg belangrijk worden in jouw nieuwe functie. Samen met de Senior .NET ontwikkelaar wordt jij verantwoordelijk voor het ontwikkelen van de API. Jullie werken met veel data en incidenteel komen er ook data vraagstukken en zullen er wat queries gedraaid moeten worden. Dit betekend dat jij veel gaat werken met

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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 »
Hans De Ridder

Hans De Ridder

23/03/2016 12:06:57
Quote Anchor link
Ik gebruik om een check op een url uit te voeren een aantal filters.
Bij testen leek alles goed te gaan. Totdat ik de extensie eens niet erbij zette.
Ik testte bijv. op http://www.regenboogjes.nl.
Laat ik de '.nl' weg dan komt er toch een true.
Er zijn tal van futoristische scripts om toch te checken op de extensie.
Maar moet ik me nu zorgen maken bij de toepassing van filters.
Want zijn veel filters beschikbaar.
Toepassing lijkt ook nog gebruikte browser gevoelig te zijn.
En er is ook verschil tussen ipv4 en ipv6 mogelijkheid.
Gewijzigd op 23/03/2016 12:08:00 door Hans De Ridder
 
PHP hulp

PHP hulp

24/11/2024 02:48:41
 
Ward van der Put
Moderator

Ward van der Put

23/03/2016 12:45:43
Quote Anchor link
Waarop wil je filteren dan?

Je constateert alleen maar dat er van alles mogelijk is, maar zegt niet wat je nu precies wilt.
 
Thomas van den Heuvel

Thomas van den Heuvel

23/03/2016 15:10:16
Quote Anchor link
De vraag is te algemeen. Geef een concreet voorbeeld van wat je wilt bereiken, wat het resultaat is en wat je had verwacht. Het is onmogelijk om hierover een algemeen en allesomvattend advies te geven.

Het klinkt alsof je de functionaliteit die je gebruikt verkeerd toepast, niet begrijpt of beide.

En soms, heel soms, doet de functionaliteit niet wat deze zou moeten doen.
 
Hans De Ridder

Hans De Ridder

23/03/2016 15:30:56
Quote Anchor link
Ik wil voorkomen dat met typefouten of vergeten extensie een url toch door de 'keuring' komt.
Er mag uitsluitend iets uitrollen met de extensie (.nl, .org, .com...etc), zonder extra toevoegingen.
Dus http://www.regenboogjes.nl.... Of http://www.pctraverse.org....
Wanneer er typefouten staan in de 'http:/www.' dan is dat goed te checken.
Kan ook wel checken of er een laatste '.' staat, en of er nog wat achteraan komt.
Maar was in de veronderstelling dat dit gebeurde met de filtering.
Gewijzigd op 23/03/2016 15:32:36 door Hans De Ridder
 
Ivo P

Ivo P

23/03/2016 15:34:02
Quote Anchor link
maar HOE filter jij?

Geef een script van 3 of 4 regels als voorbeeld

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php

$url
= 'http://regenboogjes.nl';

$b = filter_var(....);
?>
 
Hans De Ridder

Hans De Ridder

23/03/2016 19:02:46
Quote Anchor link
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
if (!empty ($webs))
{

// Remove all illegal characters from a url
$webs = filter_var($webs, FILTER_SANITIZE_URL);


// Validate url
if (filter_var($webs, FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED) === false) {
return "Verkeerde invoer Website";
}

$findme = "http://www.";
$pos = strpos($webs, $findme);
$posa = strpos($webs, '/', 8);

if (($posa  > 7) or ($pos > 0 ) or ($pos === false) or ($posa === true))
{
return "Verkeerde invoer Website";
}
}


Met het scriptje zorg ik dat er vanaf plek 1 (dus ook geen spatie)altijd moet staan 'http://www.'.
En ik kijk of er nog wat extra's bij staat (na de http://www.)dat begint met '/'.

Maar geen, of een verkeerde extensie, wordt een true.
En ik had verwacht dat het 'FILTER_FLAG_HOST_REQUIRED' wel voor de controle zou zorgen
of er een extensie aanwezig is.
 
Thomas van den Heuvel

Thomas van den Heuvel

23/03/2016 20:43:43
Quote Anchor link
FILTER_FLAG_HOST_REQUIRED bestaat volgens mij niet.

Daarnaast kan een URL naast het protocol http ook https of andere protocollen bevatten.

Verder ondersteunt filter_var() alleen standaard ASCII (iig geen domeinen buiten "latin") en laat deze mogelijk onveilige invoer door als ik de comments op php.net mag geloven.

Volgens mij heb ik dit al eerder aangegven, toen je deze vraag al eerder stelde, dat een goede manier om na te gaan of het een geldige website / webpagina betreft, het uitvoeren van een request is (bijvoorbeeld met cURL), en dan kijken of je een HTTP 200 statuscode terugkrijgt.

EDIT: en mogelijk kun je nog altijd terugvallen op handmatige moderatie en goedkeuring.
Gewijzigd op 23/03/2016 20:54:37 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

23/03/2016 21:17:20
 
Thomas van den Heuvel

Thomas van den Heuvel

23/03/2016 23:14:36
Quote Anchor link
Dat is een artikel uit 2011, daarnaast, van php.net (user comment):
Quote:
Please note that FILTER_FLAG_HOST_REQUIRED and FILTER_FLAG_SCHEME_REQUIRED have disappeared. They were previously mentioned in the constants page but it seems that host and scheme are now required by default for the validate_url filter.

Is dus niet meer nodig om expliciet op te geven.
 
Ivo P

Ivo P

24/03/2016 09:54:20
Quote Anchor link
naast http:// bestaat er ook https://
Maar ook ftp:// kan, en de vraag is, of niet ook telnet, gopher etc zouden mogen.

Daarnaast veronderstel je dat de domeinnaam altijd met www. begint.
Is wat kort door de bocht, aangezien er ook zat sites zijn die dat achterwege laten, of er iets anders staat.
bijvoorbeeld m.telegraaf.nl, shop.buystuff.com

En om veel andere scripts vast af te keuren:
checken of de extensie uit 2 tot 6 karakters bestaat (.nl .com .info of .travel)
is ook verouderd, aangezien je er tegenwoordig zaken als .amsterdam of .restaurant mag verwachten)
 
Hans De Ridder

Hans De Ridder

24/03/2016 10:15:40
Quote Anchor link
Het gaat om opgave van een eigen artiestenwebsite in een registratieformulier, waar men dit kan opgeven.
In de praktijk zullen dat geen schokkende afwijkingen zijn.
Ik zal het zo maken nu dat er standaard een aantal extensies zijn toegestaan,
zoals .nl, .com, .org, .be. Dat geldt ook bij andere bijzonderheden.
Voor afwijkingen tov mijn toegestane invoer kan men dan contact opnemen met de de webbeheerder.
 
Ivo P

Ivo P

24/03/2016 10:38:04
Quote Anchor link
.nl .org etc is wel erg beperkt.

ik weet niet wat voor artiesten, maar .tattoo lijkt me ook iets voor een artiest

.pink en .blue voor schilders met voorkeur voor bepaalde kleuren
.pics .pictures .photographer

.ink voor drukwerk
.design

.guitars voor gitaristen

.actor .theater

.band .hiphop

zo maar een paar extensies vanaf: https://www.transip.nl/domeinnaam/
 
Hans De Ridder

Hans De Ridder

24/03/2016 13:05:24
Quote Anchor link
Ik heb nu een aantal extensies die standaard mogen ingevuld in het registratieformulier.
En laat ook checken of er wel een extensie is ingevuld.
Bij afwijkingen verwijs ik naar de webmaster.
Want er zullen ook websites bijzitten van internetproviders.
En die hebben afwijkende namen van wat ik toesta.

.nl, .com, .org, .biz, .info, .eu, .be, .de.

Ik heb ook een status kolom in de database.
Die kan ik in voorkomende gevallen gebruiken om afwijkingen toch toe te staan.
 
Ivo P

Ivo P

24/03/2016 13:09:13
Quote Anchor link
Je beperkt dus de invoer heel strikt, waarbij je voor lief neemt dat er talloze geldige invoeren verboden worden.
En dat allemaal omdat de functie filter_var() niet werkt zoals jij dat wilt, danwel omdat je hem verkeerd toepast.

Persoonlijk vind ik dat je op de verkeerde weg bent.
Maar het is jouw applicatie natuurlijk.
 
Ward van der Put
Moderator

Ward van der Put

24/03/2016 13:16:48
Quote Anchor link
Wáárom controleer je niet gewoon even of de URL bestaat?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function url_exists($url)
{

    if (!$fp = curl_init($url)) {
        return false;
    }
else {
        return true;
    }
}

?>
 
Hans De Ridder

Hans De Ridder

24/03/2016 13:31:40
Quote Anchor link
Ik ken het (hobby) muziekwereldje vrij goed.
Meesten hebben helemaal geen website.
Veelal verloopt communicatie via facebook.
Die kan in ander veld ook worden opgegeven.
Net als een youtube filmpje met opname.
En als er een website is dan meestal met .nl of .org.
Gelet op het aantal muziekvrienden op mijn facebook uit Vlaanderen en Duitsland heb ik die extensie er ook bij staan.
Een aantal artiesten hebben wel een eigen bedrijf, dat niets met artiest zijn te maken heeft.
Daar verwijzen ze dan naar of naar een subpagina.
In de weinig voorkomende gevallen dat dit afwijkt maak ik dan een uitzondering.


Zal zo even jouw functie uittesten Ward.
Bedankt voor je tip.
Gewijzigd op 24/03/2016 13:40:37 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

24/03/2016 14:48:52
Quote Anchor link
Dit had ik al voorgesteld... lol. Als je niet begrijpt wat je wordt verteld vraag dan om extra uitleg. Anders wordt er waarschijnlijk aangenomen dat je snapt wat wordt voorgesteld.

Toevoeging op 24/03/2016 20:27:42:

De code van Ward geeft een "false positive" voor de url http://www.nonexistent.com/.

Zoals ik volgens mij al eerder aangaf is de beste manier gewoon kijken of je de pagina kunt opvragen en dan de HTTP statuscode inspecteren (deze zou 200 moeten zijn).

In zijn eenvoudigste vorm zou dit zoiets worden (ook weer cURL, lijkt beter zijn ding te doen dan sockets). Je hoeft hierbij ook enkel de headers (HEAD) op te halen, en niet per se alle inhoud (GET):
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
<?php
function isOnline($url) {
    $cp = curl_init();
    curl_setopt($cp, CURLOPT_URL, $url);
    curl_setopt($cp, CURLOPT_RETURNTRANSFER, true); // return response as string
    curl_setopt($cp, CURLOPT_HEADER, true); // include reponse header in response
    curl_setopt($cp, CURLOPT_NOBODY, true); // true = HEAD, false = GET
    curl_setopt($cp, CURLINFO_HEADER_OUT, true); // track request header so you can see what request you sent

    curl_setopt($cp, CURLOPT_SSL_VERIFYPEER, false); // for HTTPS domains; ugly, but effective

    $response = curl_exec($cp);
    // echo '<pre>'.htmlspecialchars($response, ENT_QUOTES, 'UTF-8').'</pre>';
    // echo curl_getinfo($cp, CURLINFO_HEADER_OUT); // inspect request header in case something went wrong


    return curl_getinfo($cp, CURLINFO_HTTP_CODE) === 200;
}

?>

Aanroep:
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
<?php
$test
= 'http://www.nonexistent.com/';
if (isOnline($test)) { // levert "nope"
    echo 'yep';
}
else {
    echo 'nope';
}

?>
<hr /><?php
$test
= 'https://www.phphulp.nl/';
if (isOnline($test)) { // levert "yep"
    echo 'yep';
}
else {
    echo 'nope';
}

?>

thxcomeagain
Gewijzigd op 24/03/2016 14:51:53 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

25/03/2016 14:53:35
Quote Anchor link
Bedankt Thomas.
Heb het verwerkt.
Ik denk dat standaard wordt aangehouden http://www.
Want vul ik in: regenboogjes.nl dan vindt hij het prima.
Als ik er echter https van maak of wat anders dan checkt hij het wel.
Maar heb het wel kunnen toepassen, dus de credits gaan met name naar jou.

Ik moet op een bijzondere manier input checken. O.a. ivm problemen met de Buma/Stemra en Stichting Brein.
Daarom kan men bijv. wel invullen dropbox.com. maar geen achtervoegsel, want dat kan verwijzen naar downloads. Overigens is het nooit helemaal veilig, want gaat men via verwijspagina weer doorschakelen dan blijft alleen een handmatige verwijdering over. Maar het is een promotiesite voor artiesten en organisaties onderling. En wil zoveel mogelijk illegaal handelen afschermen voor de leden, maar ook recht doen aan organisaties.En dat is al een hele klus...ook zonder PHP, haha
 
Ivo P

Ivo P

28/03/2016 13:56:26
Quote Anchor link
misschien heb je dan iets aan de functie http://php.net/manual/en/function.parse-url.php
 



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.