Veilig uploaden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Graduate class software engineering

Graduate Class Software Engineering Noord-Nederland - Start maart 2022 Categorie: Software Development/ Engineering Regio/Locatie: Groningen, Groningen, Netherlands Vacaturenummer: J0621-0324 Type dienstverband: Full Time Functiebeschrijving: Zet jij je eerste stap in een IT-loopbaan die er echt toe doet? Grijp deze unieke kans om deelnemer te worden in de Graduate Class Software Engineering. Wat ga je doen? In de Graduate Class Software Engineering word jij gedurende een periode van 6 tot 8 weken klaargestoomd om mee te kunnen draaien op projecten voor onze klanten. De Graduate Class bestaat uit een serie trainingen in groepsverband om vervolgens samen met de groep een case

Bekijk vacature »

Junior en verder specialiseren als database ontwik

Bedrijfsomschrijving Mijn klant is gevestigd in de regio Velp en een bekende speler binnen de retailsector binnen Europa. Vanuit het hoofdkantoor worden er dagelijks vele goederenstromen beheerd en gedistribueerd. In totaal werken er op het hoofdkantoor ruim 400 FTE en er heerst een gezellige informele werksfeer. Functieomschrijving Deze internationaal georiënteerde organisatie biedt junioren de kans zich verder te ontwikkelaar als database ontwikkelaar. Binnen deze functie wordt je uitstekend begeleid om alle "ins en outs" van databases te leren kennen en je daarin verder te ontwikkelen. Je werkt aan complexe systemen die door vele interne gebruikers gaan worden. Je komt te

Bekijk vacature »

.Net developer @ Rotterdam

2020-12-18 iSense .Net developer .Net Developer ISRA48298 Organisatie De organisatie waarbinnen je aan de slag zal gaan levert diensten aan een groot aantal organisaties binnen Nederland. De software die zij maken en inzetten voor hun klanten wordt dagelijks door honderden klanten gebruikt. Onze opdrachtgever is marktleider in Nederland als het gaat om full-service HR-dienstverlening. De afgelopen periode is onze klant hard gegroeid en daar zijn de nodige uitdagingen bij komen kijken. Om deze groei voort te kunnen zetten zijn ze op zoek naar nieuwe vaste medewerkers, dit om ervoor te zorgen dat ze marktleider blijven. Zij zijn op zoek naar

Bekijk vacature »

Senior Java developer

Senior Java developer Als senior Java developer in Apeldoorn ben je verantwoordelijk voor het tijdig en correct realiseren van de gevraagde functionaliteit. In je agile/DevOps-team lever je niet alleen een proactieve bijdrage aan de verschillende agile-events, maar zorg je er samen met de andere teamleden ook voor dat sprintdoelen worden gehaald. Dit doe je bij de Belastingdienst In nauw overleg met je teamgenoten kom je tot overwogen technische keuzes. Je wordt, als het nodig is of gewenst, gevraagd multidisciplinair inzetbaar te zijn. Dit betekent dat je, naast je ontwikkelwerkzaamheden, andere teamleden ondersteunt in de ontwerp- en testfase. Je gaat aan

Bekijk vacature »

Junior PHP Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior PHP Developer bij Coolblue? Als Junior PHP Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te kunnen maken. Je sterk analytisch vermogen komt dan ook goed

Bekijk vacature »

DevOps - Well Funded Scale Up - Expanding a DevOps

Do you want the autonomy to build a DevOps function in your own image? You’ll be coming into a Scale-Up with a view of taking a hands-on approach to building the DevOps function for the entire business. You’ll have one direct report, but don’t worry, the managerial side is left to the CTO. You’ll help this individual grow and develop to support you. Your primary focus will be to look at “as is” and how you can build on this to further enhance the services offered to both customers (internal and external) through upgrades or new technologies. Here’s why you

Bekijk vacature »

Java Algorithms Developer

In the Applications Algorithms group we are responsible for the development and implementation of the common algorithms that are then used by other teams to develop applications to optimize the production process of our customers. We are a group of experts on mathematics, algorithms, numerical methods and software engineering. Functie Job Mission Collaborate with our experts developing or improving algorithms / mathematical models and contribute to the development from a software point of view; Create a solid software design for algorithms or parts of it, where speed and memory usage should be optimized; Write quality code that is easy to

Bekijk vacature »

Ontwikkelaar / Angular / Azure @ Rijssen

2021-10-20 iSense Ontwikkelaar Angular Azure Heb jij ervaring opgedaan met Angular en eerder ontwikkeld in Azure? Vind je het leuk om je aan te sluiten bij een kleine en groeiende organisatie? Lees dan snel verder en solliciteer! ISHA51359 Organisatie Als Developer kom je te werken bij een softwareorganisatie die sinds 2 jaar een 'eigen' bv zijn geworden met op dit moment ongeveer 11 werknemers (het moederbedrijf bestaat uit ongeveer 45 werknemers). Er wordt maatwerk geleverd voor klanten voor o.a. applicaties en hiernaast verwerken ze grote hoeveelheden data in samenwerking met het moederbedrijf. Het technische gedeelte ligt bij hen en de

Bekijk vacature »

Angular Frontend Software Developer

De vacature Funle is een startup en een spinoff van Semantica. Funle ontwikkelt een nieuw platform voor zelfstandige IT-professionals waarmee we freelancen weer leuk maken. Samen met het core-team van 3 members ga jij helpen de wereld van de IT-bemiddeling op zijn kop te zetten. We zijn op zoek naar iemand die wil bijdragen aan iets groters dan alleen de code die hij/zij schrijft. Als startup heeft Funle behoefte aan een meedenker, iemand met een mening en de vaardigheid om die mening waar te maken. Als je één keer in je leven een verschil wil maken in de wereld van

Bekijk vacature »

Lead Front End Developer, Dynagroup

Ben jij die gemotiveerde en hardwerkende developer die binnenkort de lead wil nemen van een Front End ontwikkelteam? Word jij warm van het bouwen aan innovatieve oplossingen en het overwinnen van uitdagingen in de wereld van Supply Chain oplossingen, After Sales Services en E-commerce services? Lees dan snel verder en solliciteer! Wat bieden wij jou Marktconform salaris Doorgroeimogelijkheden Dynamische en gezellige werkomgeving Uitdagende positie binnen een groeiend bedrijf Wie ben jij Om voor deze functie in aanmerking te komen beschik je over een juiste dosis enthousiasme en aansturende kwaliteiten. Verder: Jij beschikt over een HBO in de richting van informatiesystemen

Bekijk vacature »

Team Lead PHP

Als Tech Lead zorg voor een glimlach op het gezicht van onze klanten door geweldige software af te leveren. Wat doe je als Team Lead PHP bij Coolblue? Als Team Lead PHP bouw en leid je een team dat uitblinkt in het leveren van hoogwaardige en kostenefficiënte software. Je ondersteunt teamleden bij het afbakenen van hun doelen en met de aanpak om ze te behalen. Als Tech Lead zorg voor een glimlach op het gezicht van onze klanten door geweldige software af te leveren en een effectief team op te bouwen. Ook Team Lead PHP worden bij Coolblue? Lees hieronder

Bekijk vacature »

Senior Software Developer (up to € 95K)

Applicants must live in the Netherlands! The Senior Developer is responsible for designing, developing, delivering in-house software using OTS platforms (low-code BPM, robotics, and OCR) and inhouse developed tooling and APIs (C/C++, C#). In addition, as the development branch is new and growing, the role would also be expected to provide input/assistance in improving the change process (incl. code versioning strategies, CI/CD, etc). Client Details Applicants must live in the Netherlands! Key-Account of Michael Page, Client/company in the Financial Services Sector Description Applicants must live in the Netherlands! As a senior member of staff, the role would be expected to

Bekijk vacature »

Oracle Developer @ Arnhem

2021-11-05 iSense Oracle Developer Heb jij ervaring opgedaan met Apex, PL-SQL en/of Oracle? Ben jij een developer met meerdere jaren ervaring en op zoek naar een dynamische organisatie? Lees dan snel verder en solliciteer! ISVI51626 Organisatie Als Oracle Developer sluit jij je aan bij een organisatie die de logistieke oplossing biedt voor de bekendere retailketens over de gehele wereld. De klanten waarvoor wordt gewerkt, komen in elke winkelstraat wel voor; grote kans dat je zelf wel van verschillende de merken wat in huis hebt gehaald! Het gehele logistieke proces bij het openen of renoveren van een winkel wordt ondergebracht in

Bekijk vacature »

Medior fullstack .NET developer @ Rotterdam

2021-05-12 iSense Medior fullstack .NET developer Medior fullstack .NET Developer ISAR49770 Organisatie Onze klant is een grote internationale speler. Ze investeren steeds in het uitbreiden van het analyse- en servicepakket om de klanten goed van dienst te kunnen blijven. Naast Nederland zijn er nog enkele andere locaties in Europa waar ze zijn gevestigd. IT is verspreid over alle vestigingen. Op elke locatie zijn Developers en System engineers aanwezig. Onze klant is marktleider binnen het gebied waarin zij actief zijn. Nu zijn wij op zoek naar verschillende developers, die er samen met het andere personeel, 110% voor willen gaan. Taken .Net

Bekijk vacature »

Business Developer Credit Risk

Senior Business Developer Team Delivery Incasso2020 programma Het succesvol Live brengen van een eerste MVP in Q1 2022 met het Agile/Scrum team: jij bent in de driver seat, de PO ondersteunt waar nodig Requirements en acceptatie criteria voor volgende incrementen opstellen zodat ook de backlog items na Go-Live helder zijn voor het Agile/Scrum team Overdracht van opgedane kennis en werkzaamheden naar een vaste kracht Functie-eisen Een afgeronde HBO/WO opleiding Ervaring binnen de bancaire sector Heeft ervaring met E2E IT implementatie in een Agile Way of Working Is in staat om zich snel in een nieuw onderwerp te verdiepen en/of heeft

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

29/11/2021 16:46:54
 
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.