Veilig uploaden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior Software Developer / C#

Functieomschrijving Heb jij al enige ervaring op het gebied van software development en bij voorkeur een afgeronde ICT opleiding? Heb je al enige ervaring met C# / .NET en ben je op zoek naar je eerste of tweede baan? Lees dan deze vacature! Je werkt als Software Developer aan industriële software / software gericht op machine besturing en maakt gebruik van C# en C; Je denkt mee over de architectuur en het design; Je weet requirements te vertalen naar de technische oplossing; Je onderzoekt issues en lost storingen op waar nodig; Je denkt mee over de doorontwikkeling van de software

Bekijk vacature »

Senior vergunningenmanager

Ben jij in staat om alle belangen te managen, de juiste adviezen te geven en kun je meerdere projecten tegelijk coördineren? Deel je graag jouw kennis en ervaring met junioren en wil jij het verschil maken? Bij RPS krijg je hiervoor alle ruimte en kun je ook aan je eigen ontwikkeling blijven werken. Kortom; de rol senior vergunningenmanager in Leerdam is de nieuwe uitdaging voor jou! Senior vergunningenmanager voor ons kantoor in Leerdam Een greep uit jouw werkdag: Vandaag start je met een teamoverleg met al je collega’s van omgevings- en vergunningenmanagement. Met elkaar zijn jullie dagelijks bezig met het

Bekijk vacature »

Xamarin developer gezocht, centrum Rotterdam

Ben je Xamarin developer en op zoek naar een nieuwe baan? Bij een slagvaardig en hard groeiend bedrijf met korte lijnen? In een omgeving waar je onder andere direct samen met de oprichter werkt aan het verder ontwikkelen van een vernieuwend product? Dan is deze vacature zeker iets voor jou. Voor een bedrijf in het centrum van Rotterdam (goed te bereiken met de trein) zijn we momenteel op zoek naar een Xamarin developer. Het gaat om een klein bedrijf dat op een punt is beland waar de vraag naar hun software flink toegenomen is. Hierdoor zijn ze op zoek naar

Bekijk vacature »

Java developer / Goede doelen organisatie

Functieomschrijving Wil jij als Java developer bijdragen aan een betere wereld? Ben jij een developer die graag afwisseling in zijn werk heeft? Dan is dit de baan voor jou! Als software developer werk je in teamverband aan het bouwen en uitbreiden van diverse financiële applicaties, alsmede de koppeling met diverse externe leveranciers (ASP’s); Om aan de specifieke wensen, ingegeven door de doelstellingen van de klant, gehoor te geven worden de applicaties binnen de organisatie ontwikkeld en op maat gemaakt; Het hele Java EE spectrum van de web front-end, EJB’s tot aan de connectoren naar de database komt hier bij kijken.

Bekijk vacature »

E-learningontwikkelaar

Wil jij meewerken aan de ontwikkeling van hoogwaardige leeroplossingen? En ben je in staat om jouw kennis over opleidingsmethodieken te vertalen naar trainingen? Dan is dit de perfecte uitdaging voor jou! Jouw baan Je belangrijkste taak is het ontwikkelen van e-learningmodules voor specifieke doelgroepen, het inhoudelijk meedenken over en ontwikkelen van creatieve, didactische concepten voor onze klanten. Ruim 90.000 ziekenhuismedewerkers zijn straks door jóuw producten beter in staat om hun patiënten te helpen. Jouw team Als e-learningontwikkelaar ben je onderdeel van een multidisciplinair team dat bestaat uit onderwijskundigen, e-learningontwikkelaars en technisch schrijvers. Binnen dit hechte team heeft ieder zijn eigen

Bekijk vacature »

Angular Developer / .NET Core / front-end of full-

Functieomschrijving Ben jij de medior / senior Angular Developer die graag in de regio Tilburg door zou willen groeien naar Lead Developer? Lees dan gauw verder! Software ontwikkeling: webbased platform en iOS apps; Werken met technieken als Angular 8, .NET Core, Javascript en TypeScript; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Code reviews houden; Initiatief nemen voor nieuwe technische mogelijkheden. Functie-eisen Minimaal 2 jaar ervaring als Angular Developer en technieken als .NET Core; Ervaring met GIT en JIRA; Zowel Nederlands- als Engelssprekend; Passie voor je vak. Bedrijfsomschrijving Bij dit informele bedrijf met een development team

Bekijk vacature »

Medior Microsoft Dynamics Developer

Jouw uitdaging: Ben jij sterk in het succesvol ontwikkelen van maatwerk componenten op het Dynamics platform? En wil je actief meewerken aan de ontwikkeling van ons Digital Customer Experience portfolio? Dan is dit iets voor jou! Voor de Digital Customer Experience afdeling (DCX) zijn we op zoek naar een Medior Microsoft Dynamics Developer. In deze functie ben je verantwoordelijk voor de succesvolle ontwikkelen van maatwerk componenten op het Dynamics platform bij toonaangevende organisaties. Denk daarbij aan het realiseren van integratie met front en backoffice systemen op basis van Azure PaaS of het ontwikkelen van complexe plug-ins. Daarnaast werk je actief

Bekijk vacature »

Vacature Front-end Developer

Vacature Front-end Developer Van Ons, Amsterdam Vacature Front-end Developer ES6 kent geen geheimen voor je. Je voegt nog even een extra animatie toe om de website nóg vetter te maken. Korte laadtijden en goede UX zijn heilig. En je neemt geen genoegen met sites die niet geoptimaliseerd zijn voor mobiel. Samen met je gedreven, gezellige en knetterslimme collega’s werk je vanuit ons kantoor in Amsterdam aan de vetste cases voor de mooiste merken. Jouw focus ligt op front-end en je bent dus een belangrijke schakel in de projecten die we afleveren voor onze klanten. Jouw werk gaat de wereld over

Bekijk vacature »

Fullstack PHP developer voor gerenommeerde organis

Functieomschrijving Voor de functie is het belangrijk dat jij goede kennis hebt van PHP en Laravel/Symfony en JavaScript. Ze zoeken dus iemand die al 5 jaar werkervaring heeft als developer. Je zult hier zowel op de Front- als Backend werkzaam zijn en samen met je collega's ben je verantwoordelijk voor de software. Wil jij jezelf verder uitdagen in een klein en sterk team? Dan ligt hier de kans om deze stap te zetten! Functie-eisen - Je hebt minimaal 5 jaar werkervaring als PHP developer; - Javascript, PHP en MySQL kennen geen geheimen voor jou; - Je hebt kennis van meerdere

Bekijk vacature »

Java Developer Digital

At KLM, we prefer to call back-end developers Java developers. It's because of our love of travel. The world we live in is changing rapidly, and as a developer, you're in the cockpit. Will you join us on a digital journey around the world? About the job What will your task be? You are the indispensable link in the big picture. Most of all, you will help make innovations a reality. For example, you can proudly stand next to the check-in that you have made possible. Because let's be honest: we are at the cutting edge of innovation, but without

Bekijk vacature »

Senior .NET developer/ architect gezocht, api deve

Ben je een ervaren .NET developer en op zoek naar baan waarbij je je ook meer kunt gaan richten op architectuur? Binnen een leuke, sociale en betrokken werkomgeving? Met technieken als .NET Core en Azure? Dan zou deze baan wellicht iets voor jou kunnen zijn. Voor een organisatie in Rotterdam zijn we op zoek naar eens senior .NET ontwikkelaar/ architect. De organisatie bevindt zich in de financiële branche en is een van de grotere spelers in hun vakgebied. De organisatie bestaat uit circa 600 medewerkers en heeft verschillende vestigingen in Nederland. Het hoofdkantoor zit in Rotterdam en daar is ook

Bekijk vacature »

Cloud Software Developer

Als Cloud Software Developer ga je aan de slag met onze SaaS-dienst Zorgplatform. Voor de ontwikkeling hiervan gebruiken wij Microsoft technologie. Zie jij dit als een uitdaging? Lees dan verder! Jouw baan Als Cloud Software Developer ga je werken aan ons Zorgplatform. Dit is een veilige service die uitgebreide ondersteuning biedt voor transmurale samenwerking. Wij ontwikkelen dit in C# in een ASP.NET Core framework. Je gaat aan de slag met het opzetten van microservices voor de verschillende processen die Zorgplatform ondersteunt. Je maakt bijvoorbeeld de integratie voor het inkijken van het medisch dossier mogelijk aan de hand van toelatingen, geregistreerd

Bekijk vacature »

PHP developer

Heb jij uitgebreide kennis van PHP, Linux en front-end? En hou je van een dynamische omgeving, waarin jouw baan er toe doet, jouw ideeën worden gehoord en waar je werkelijk het verschil kan maken voor jouw collega’s en het bedrijf? Zo ja, dan zijn wij op zoek naar jou in de positie van: PHP developer voor onze locatie in Veghel Over de positie: Als PHP programmeur bouw je aan diverse webbased applicaties in nauwe samenwerking met collega’s van IT, E-commerce en externe partners. Jouw taken omvatten, maar zijn niet gelimiteerd tot: gave internationale (web) applicaties bedenken, ontwerpen, maken en implementeren;

Bekijk vacature »

Back-end PHP Developer / Maatschappelijk betrokken

Functieomschrijving Ben jij een developer die de volgende stap in zijn carrière wilt maken? Wijk jij niet uit voor precisie werk in een open en informele omgeving? Lees dan snel verder en reageer! Her- en uitbouwen van het inhouse softwareplatform dmv PHP; Onderhouden van bovengenoemd platform in PHP; Sparren met het team; Meedenken over nieuwe functionaliteiten, security etc; Jouw input leveren aan het proces door op de hoogte te blijven van nieuwe ontwikkelingen etc. Functie-eisen Afgeronde HBO of WO opleiding, liefst in de richting van Informatica; Je hebt minimaal 3 jaar ervaring als PHP Developer; Je hebt ervaring met object

Bekijk vacature »

Ervaren C# developer, nieuwbouw, .NET Core, Azure,

Ben je op zoek naar een jong bedrijf dat in het beginstadium staat van een te ontwikkelen product? Maar wel al een stabiele klantenbasis heeft? Waar je als backend developer of fullstack developer (net waar je voorkeur ligt) kunt werken aan onder meer microservices en het inrichten van een Azure omgeving? Voor een spin-off van een bestaand bedrijf zijn we op zoek naar een ervaren .NET developer. Het gaat dus om een start-up maar wel al met een bestaande klantenbasis. Met een nieuw team van circa 6 mensen (waarvan 3 .NET developers) willen ze een cloudplatform ontwikkelen waarmee klanten (productiebedrijven)

Bekijk vacature »
Pim -

Pim -

21/08/2011 16:42:27
Quote Anchor link
Dag allemaal!
Omdat ik er niet zo heel vertrouwd mee ben, wil ik jullie vragen dit uploadscript te reviewen. Het is een methode van mijn ImageRepository en het neemt Symfony\Component\HttpFoundation\File\UploadedFile als argument, dat Symfony\Component\HttpFoundation\File\File uitbreidt, dat weer SplFileInfo uitbreidt.
UploadedFile#getClientMimeType() geeft, verrassend genoeg het aangeleverde mime type.
UploadedFile#move($directory, $name) verplaatst de upload naar de definitieve locatie en geeft een Symfony\Component\HttpFoundation\File\File terug.

ImageUploadException is een reguliere exception.

$this->directory.$this->subDirectory is de uiteindelijke locatie (subdirs zijn niet toegestaan)
$this->extensions zijn de toegestane extensies

Is dit (voldoende) veilig?

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
class ImageRepository
{
    /**
     *
     * @param UploadedFile $image
     * @return Symfony\Component\HttpFoundation\File\File
     */

    public function add(UploadedFile $image)
    {

        // Guess extension based on mime
        $mime = $image->getClientMimeType();
        $extension = substr($mime, strpos($mime, '/')+1);
        
        if(!in_array($extension, $this->extensions))
                throw new ImageUploadException(
                        'Bestandstype niet toegestaan. Upload een afbeelding'.
                        'met met een van de volgende types: '.
                        implode(', ', $this->extensions)
                );

        
        // Make the name safe to use
        $name = $image->getClientOriginalName();
        $name = basename($name);
        // Delete extension
        $name = substr($name, 0, strrpos($name, '.'));
        // Replace weird characters with an underscore
        $name = preg_replace('/[^a-z0-9]+/i', '_', $name);
        $name = trim($name, '_');

        // Suffix name until it doesn't already exist
        while(file_exists($this->directory.$this->subDirectory.$name.'.'.$extension))
                $name .= '_1';

        $path = $this->directory.$this->subDirectory.$name.'.'.$extension;        

        // Delete image in case of an exception
        try {
            $image = $image->move($this->directory.$this->subDirectory, $name.'.'.$extension);

            $size = getimagesize($path);

            if(!isset($size[0]) || !isset($size[1]))
                throw new ImageUploadException(
                        'De geüploade afbeelding is beschadigd'
                );

            if($size[0] != $this->allowedImageSize[0] || $size[1] != $this->allowedImageSize[1])
                throw new ImageUploadException(sprintf(
                        'Upload een afbeelding met de volgende afmetingen: %d pixels breed en %d pixels hoog',
                        $this->allowedImageSize[0], $this->allowedImageSize[1]
                ));


            return $image;
        }
catch(\Exception $e) {
            unlink($path);
            throw $e;
        }
    }
}
Gewijzigd op 21/08/2011 17:10:41 door Pim -
 
PHP hulp

PHP hulp

19/01/2020 12:36:25
 
Pim -

Pim -

26/08/2011 22:44:32
Quote Anchor link
Bump
 
 - Diov  -

- Diov -

27/08/2011 14:14:48
Quote Anchor link
Heb je een voorbeeldje online?
Kunnen we testen :)
 
Pim -

Pim -

27/08/2011 15:10:10
Quote Anchor link
Haha, dat lijkt me niet de ideale manier om de veiligheid te reviewen...
 
Jaron T

Jaron T

27/08/2011 15:52:21
Quote Anchor link
Quote:
// Suffix name until it doesn't already exist
while(file_exists($this->directory.$this->subDirectory.$name.'.'.$extension))
$name .= '_1';


Niet echt een veiligheidsprobleem, maar wel een 'fout' .. je moet _1 dynamisch ophogen
 
Pim -

Pim -

27/08/2011 17:23:33
Quote Anchor link
Ja daar ben ik me van bewust. Ik vind het eigenlijk werk goed zo.

Toevoeging op 27/08/2011 17:23:59:

Ja daar ben ik me van bewust. Ik vind het eigenlijk wel goed zo.
 
The Force

The Force

27/08/2011 17:48:35
Quote Anchor link
Als iemand een PHP bestand upload met een "image/jpeg" mimetype dan komt hij hier doorheen. Mimetype kan volgens mij gewoon door gebruikers verandert worden en is dus niet te vertrouwen. Zie http://stackoverflow.com/questions/2242391/ensure-that-uploaded-file-is-image-in-php voor alternatieven.
 
Pim -

Pim -

27/08/2011 18:01:11
Quote Anchor link
Daarom check ik toch ook de bestandsgrootte. Dat wordt daar aangegeven.
 
The Force

The Force

27/08/2011 18:32:40
Quote Anchor link
Hé ja, in dat geval niks gezegd. Ziet er veilig uit. Het enige wat ik nog kan bedenken is dat mensen heel vaak gaan uploaden, maar dat zal in de meeste situaties geen gevaar vormen.
 
Pim -

Pim -

27/08/2011 20:36:38
Quote Anchor link
Sowieso kan alleen de admin uploaden ;-)
 



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.