Filterfuncties sanitize, validate, etc. betrouwbaar?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Front end developer

Functie Jij als ervaren Front end developer bent een expert het gebied van Javascript en React. Je wordt onderdeel van een multidisciplinair team bestaande uit een PO, twee Front end developers, een DevOps/Back end developer, een UX/UI designer en een projectmanager. Verder is er iemand verantwoordelijk voor de HR en is de algemeen directeur nauw betrokken bij alle projecten. Dagelijks hou jij je bezig met de verschillende projecten die zijn opgenomen in de sprint. Daarnaast denk je mee over mogelijke oplossingen om de behoefte van de klant op de beste manier in te vullen. Verder spar jij intern met collega’s

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

Bekijk vacature »

APEX Ontwikkelaar in een team van Oracle Developer

Bedrijfsomschrijving Wij zijn op zoek naar een APEX Ontwikkelaar om onze opdrachtgever in Den Haag te versterken. In deze rol zul je verantwoordelijk zijn voor het ontwikkelen en onderhouden van de front-end van onze applicaties met behulp van Oracle Application Express (APEX). Je werkt aan zowel inhouse als externe projecten. De sfeer binnen het Oracle team is gemoedelijk en men probeert elkaar te helpen én van elkaar te leren. Zo ontstaat er een prettige en plezierige werksfeer waar ruimte is voor persoonlijke ontwikkeling en groei. Er wordt gewerkt met de meest nieuwe technologieën waardoor je kennis up-to-date blijft. Het bedrijf

Bekijk vacature »

Medior/senior Python developer

Functie Bedrijven komen bij deze organisatie om technische vraagstukken op te lossen en hierin ook tot oplossingen te komen waar ze zelf misschien niet aan gedacht hadden. Jij gaat vanuit je ervaring dus niet alleen hands-on aan de slag met het ontwikkelen, maar zult ook zeker adviseren en proactief meedenken met de klant. Er zijn meerdere lange en/of korte projecten en het type klanten is heel uiteenlopend. Zo kun je terecht komen in een multidisciplinair scrumteam waarin je als Python developer meewerkt, of juist voor een kleiner (Greenfield) project aan de slag gaan waarin je veel breder bezig bent. Door

Bekijk vacature »

Frontend Developer Vue Nuxt HBO Javascript

Samengevat: Deze werkgever levert elke dag betere digitale gebruikerservaringen. Ben jij geschikt als frontend Developer? Heb je ervaring met Vue en Nuxt? Vaste baan: Front-End Developer HBO €3.100 - €4.600 Zij bieden opdrachtgevers een complete dienstverlening op gebied van ontwerpen en ontwikkelen van websites, zoekmachine optimalisatie, online adverteren, content marketing en conversie verbetering. Zij werken met een eigen ontwikkeld CMS. Bij bij hun werk je aan onze eigen bedrijfsapplicaties. Je ontwikkelt met ons de meest nieuwe software. Wij blinken uit als het gaat om de inzet van technologie. Deze werkgever staat open voor elke nieuwe trend. Onze systemen zijn groot

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Full Stack Software Developer C#.NET

Functieomschrijving Wij zijn op zoek naar een gepassioneerde Full Stack C#.NET Software Developer. Als Software Developer ben je verantwoordelijk voor het ontwikkelen van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Je werkt samen met andere ontwikkelaars en engineers om de sensoren in machines uit te lezen en deze data om te zetten in management informatie voor jullie klanten. Taken en verantwoordelijkheden: Ontwikkelen en onderhouden van webapplicaties, apps en dashboards voor de eigen IOT-oplossingen. Testen en valideren van de ontwikkelde software. Actief deelnemen aan code reviews en bijdragen aan het verbeteren van de kwaliteit van de software. Je gaat aan

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

API Developer Red Hat Fuse

Dit ga je doen Als API Developer zal je verantwoordelijk zijn voor het: het maken van API's en het correct laten draaien van de API's op het platform. Hierdoor kom je in aanraking met Red Hat Fuse, Springt Boot, 3Scale, Red Hat SSO, Openshift en Azure DevOps; zorgen voor de kwaliteit van de ontwikkeling, integratie en prestaties van de API's; zorgen voor een stabiel integratieplatform. Hier ga je werken Deze organisatie is een toonaangevende speler in de vastgoedbranche en telt momenteel ruim 500 medewerkers. Met meer dan 150 applicaties staat er een complex applicatielandschap dat hoofdzakelijk op OpenShift, Azure en

Bekijk vacature »

Full stack Python developer

Functie Samen met andere collega’s (een product owner, een software manager en een ervaren ontwikkelaar) ga jij onze producten verder ontwikkelen. Jouw verantwoordelijkheden zullen bestaan uit: – Verder wil gaan met de ontwikkeling van onze bestaande producten; nieuwe features! – Meedenkt over de roadmap van onze producten – Als sparringpartner kan optreden op het gebied van development – Zelf ook nieuwe ideeën op tafel durft te leggen en deze van scratch af aan wilt bouwen Hieronder ook een paar voorbeelden van projecten waar we momenteel mee bezig zijn of binnenkort aan willen beginnen: – Real-time interactie creëren in onze web

Bekijk vacature »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

Front end developer

Functie Qua type opdrachten is er echt een verscheidenheid aan afnemers, zo werken ze met grote multinationals, maar ook met startups. Zo kom je te werken in een gevarieerde omgeving en kan je ook schakelen tussen verschillende culturen. De projecten variëren van greenfield projecten tot langdurige ontwikkeltrajecten. Hier wordt alleen maar gewerkt met aan front end projecten. Daarom maakt het onze partner niet uit waar jij kennis van hebt, als je maar gedegen kennis hebt van Javascript frameworks, Unit testing en ook bekend bent met de scrum methodiek. Eisen Minimaal 4 jaar relevante werkervaring Kennen en ervaring van Javascript frameworks

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

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

05/01/2025 00:01:09
 
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.