Upload Systeem

  • Hallo,


    Ik ben momenteel bezig met een upload systeem op me website.
    Dit werkt goed alleen zit ik met het volgende.


    Er word niet gecontrolleerd op extensie of mime type.


    Hoe kan ik dit het beste beveiligen dat er geen verkeerde dingen worden geupload?


    Pekeltje

  • Guest, wil je besparen op je domeinnamen? (ad)
  • door de content type van het plaatje op te vragen, je kan dit via mime_content_type doen maar ik zal er voor kiezen om het via het volgende manier te doen:

    PHP
    $content_type = $_FILES['afbeeldingjenaam']['type']
    $extensie = explode(".", $_FILES['afbeeldingjenaam']['name']);


    Je maakt daarnaast nog 2 arrays met extensies en types.
    voorbeeld:"

    PHP
    $toegelaten1 = array('jpg','gif');
    $toegelaten2 = array("image/gif", "image/jpeg");


    En om het dan te controleren kan je de functie in_array gebruiken voorbeeld hier van is:

    PHP
    !in_array($content_type, $toegelaten2) || !in_array($extensie, $toegelaten1) AND $fouten[] = "Je kan alleen maar .gif, .png, .bmp en .jpg bestanden uploaden!";


    Hoop dat je beetje snapt hoe je het kan beveiligen.

    School
    Tweedejaars Informatica Student @ Hogeschool Rotterdam.


    Webtalen
    - PHP ( OOP )
    - SQL
    - JavaScript i.c.m. jQuery framework
    - (x)HTML
    - CSS
    - Actionscript
    - XML


    Programmeertalen
    - Java
    - C#
    - Ruby i.c.m. on Rails framework

  • Bedankt NielsB


    Daar gaat het wel mee lukken denk ik :)
    Had persoonlijk verwacht dat het veel lastiger zou zijn.
    Doordat als ik googelde lappen code kreeg waar ik totaal niets van begreep :$

    Nieuwe reactie samengevoegd met originele reactie op 25.05.10 14:30:36:
    Bedankt niels het is gelukt.


    Mag slotje op :slotje:

  • Een upload systeem beveiligen aan de hand van de variabele type:


    PHP
    $_FILES['bestand']['type']


    Is geheel nutteloos. De browser, en dus de cliënt, verstuurd die variabele naar de server. Deze variabele is dus volkomen onbetrouwbaar. Je zult gebruik moeten maken van een van de volgende technieken:


    http://www.php.net/manual/en/function.mime-content-type.php
    http://www.php.net/manual/en/book.fileinfo.php


    De tweede heeft de voorkeur, de eerste is namelijk depricated.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!