webhostingtalk.nl
advertentie
advertentie

Evenementen voor de komende 60 Dag(en)

Pagina 1 van de 3 1 2 3 LaatsteLaatste
Resultaten 1 tot 15 van de 37
          

  1.  
    #1
    Rob
    Gast
    n/a Berichten
    Berichten zijn liked




    upload controleren op type (php)


    Hallo,

    In een uploadbestand gebruik ik het volgende om bestandstype en -grootte
    te controleren

    if (($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    && ($_FILES["file"]["size"] < 250000))
    {
    hier het een en ander
    }

    Werkte prima in FF, maar IE7 pikt het niet, er wordt niets ge-upload.


    Als ik controle op type eruit haal, dus:

    if ($_FILES["file"]["size"] < 250000)
    {
    hier het een en ander
    }

    dan werkt het wel in IE7.

    Iemand een idee waarom dat is en hoe ik toch kan controleren op type?

    Rob


  2.  
    #2
    Nico Schuyt
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Rob wrote:
    > In een uploadbestand gebruik ik het volgende om bestandstype en
    > -grootte te controleren
    > if (($_FILES["file"]["type"] == "image/gif")
    >>> ($_FILES["file"]["type"] == "image/jpeg")

    > && ($_FILES["file"]["size"] < 250000))
    > {
    > hier het een en ander
    > }


    Moet dat niet zijn:
    if (($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] ==
    "image/jpeg")) && ($_FILES["file"]["size"] < 250000)) {..}

    --
    Nico




  3.  
    #3
    Rik Wasmus
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    On Sun, 17 Aug 2008 22:36:39 +0200, Rob <nospam@plea.se> wrote:

    >
    > Hallo,
    >
    > In een uploadbestand gebruik ik het volgende om bestandstype en -grootte
    > te controleren
    >
    > if (($_FILES["file"]["type"] == "image/gif")
    > || ($_FILES["file"]["type"] == "image/jpeg")
    > && ($_FILES["file"]["size"] < 250000))
    > {
    > hier het een en ander
    > }
    >
    > Werkte prima in FF, maar IE7 pikt het niet, er wordt niets ge-upload.
    >
    >
    > Als ik controle op type eruit haal, dus:
    >
    > if ($_FILES["file"]["size"] < 250000)
    > {
    > hier het een en ander
    > }
    >
    > dan werkt het wel in IE7.
    >
    > Iemand een idee waarom dat is en hoe ik toch kan controleren op type?



    Waarschijnlijk zegt MSIE wat anders (n.a.w. 'image/x-jpeg' o.i.d.), wat je
    natuurlijk makkelijk kunt controleren door de $_FILES array te dumpen en
    te controleren. Verder is dit een 'user-supplied' waarde, ofwel: totaal
    onbetrouwbaar. Ik kan als ik dat wil best wel een nare executable uploaden
    en beweren dat het een jpeg is.

    Om te controleren of iets een plaatje is (waar ik wat mee kan) gebruik ik
    normaal de GD functie getimagesize(): relatief laag resource gebruik, en
    je weet zeker dat je het als plaatje kunt interpreteren:

    if((getimagesize($_FILES['file']['tmp_name']!==false) &&
    $_FILES["file"]["size"] < 250000){
    //doe je ding
    }
    --
    Rik Wasmus


  4.  
    #4
    Nico Schuyt
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Rik Wasmus wrote:

    [Testen met if ($_FILES["file"]["type"] == "image/jpeg") e.d.]

    > ... Verder is dit een 'user-supplied' waarde,
    > ofwel: totaal onbetrouwbaar. Ik kan als ik dat wil best wel een nare
    > executable uploaden en beweren dat het een jpeg is.


    Dat is teleurstellend! Ik heb altijd gedacht dat het een controle op de
    header van het bestand was.
    Betekent dit dat je net zo goed de extensie kunt controleren?

    --
    Nico




  5.  
    #5
    Maarten Wierda
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Nico Schuyt schreef:

    > [Testen met if ($_FILES["file"]["type"] == "image/jpeg") e.d.]
    >
    >> ... Verder is dit een 'user-supplied' waarde, ofwel: totaal
    >> onbetrouwbaar. Ik kan als ik dat wil best wel een nare executable
    >> uploaden en beweren dat het een jpeg is.

    >
    > Dat is teleurstellend! Ik heb altijd gedacht dat het een controle op
    > de header van het bestand was.


    Ook die valt theoretisch te manipuleren, meen ik.

    > Betekent dit dat je net zo goed de extensie kunt controleren?


    Theoretisch gezien wel, aangezien zowel met de headers als de extensie
    van een bestand gerommeld kan zijn. Even de afmetingen van een bestand
    opvragen middels de GD-functie getimagesize() lijkt me dus de beste
    oplossing.


    --
    Groet,
    Maarten Wierda


  6.  
    #6
    Nico Schuyt
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Maarten Wierda wrote:
    > Nico Schuyt schreef:


    >> [Testen met if ($_FILES["file"]["type"] == "image/jpeg") e.d.]


    >>> ... Verder is dit een 'user-supplied' waarde, ofwel: totaal
    >>> onbetrouwbaar. Ik kan als ik dat wil best wel een nare executable
    >>> uploaden en beweren dat het een jpeg is.


    >> Dat is teleurstellend! Ik heb altijd gedacht dat het een controle op
    >> de header van het bestand was.


    > Ook die valt theoretisch te manipuleren, meen ik.


    >> Betekent dit dat je net zo goed de extensie kunt controleren?


    > Theoretisch gezien wel, aangezien zowel met de headers als de extensie
    > van een bestand gerommeld kan zijn. Even de afmetingen van een bestand
    > opvragen middels de GD-functie getimagesize() lijkt me dus de beste
    > oplossing.


    Bedankt! Blijft nog wel (het minder belangrijke) punt over om te bepalen wat
    het type image is.

    --
    Nico




  7.  
    #7
    Maarten Wierda
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Nico Schuyt schreef:

    >>> [Testen met if ($_FILES["file"]["type"] == "image/jpeg") e.d.]

    >
    >>>> ... Verder is dit een 'user-supplied' waarde, ofwel: totaal
    >>>> onbetrouwbaar. Ik kan als ik dat wil best wel een nare
    >>>> executable uploaden en beweren dat het een jpeg is.

    >
    >>> Dat is teleurstellend! Ik heb altijd gedacht dat het een controle
    >>> op de header van het bestand was.

    >
    >> Ook die valt theoretisch te manipuleren, meen ik.

    >
    >>> Betekent dit dat je net zo goed de extensie kunt controleren?

    >
    >> Theoretisch gezien wel, aangezien zowel met de headers als de
    >> extensie van een bestand gerommeld kan zijn. Even de afmetingen van
    >> een bestand opvragen middels de GD-functie getimagesize() lijkt me
    >> dus de beste oplossing.

    >
    > Bedankt! Blijft nog wel (het minder belangrijke) punt over om te
    > bepalen wat het type image is.


    Wellicht een combinatie van getimagesize() + een check op de headers?


    --
    Groet,
    Maarten Wierda


  8.  
    #8
    Nico Schuyt
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Maarten Wierda wrote:
    > Nico Schuyt schreef:
    >
    >>>> [Testen met if ($_FILES["file"]["type"] == "image/jpeg") e.d.]

    >>
    >>>>> ... Verder is dit een 'user-supplied' waarde, ofwel: totaal
    >>>>> onbetrouwbaar. Ik kan als ik dat wil best wel een nare
    >>>>> executable uploaden en beweren dat het een jpeg is.

    >>
    >>>> Dat is teleurstellend! Ik heb altijd gedacht dat het een controle
    >>>> op de header van het bestand was.

    >>
    >>> Ook die valt theoretisch te manipuleren, meen ik.

    >>
    >>>> Betekent dit dat je net zo goed de extensie kunt controleren?

    >>
    >>> Theoretisch gezien wel, aangezien zowel met de headers als de
    >>> extensie van een bestand gerommeld kan zijn. Even de afmetingen van
    >>> een bestand opvragen middels de GD-functie getimagesize() lijkt me
    >>> dus de beste oplossing.

    >>
    >> Bedankt! Blijft nog wel (het minder belangrijke) punt over om te
    >> bepalen wat het type image is.

    >
    > Wellicht een combinatie van getimagesize() + een check op de headers?


    Wordt dat een variant op:
    $imageinfo = getimagesize($_FILES['userfile']['tmp_name']);
    if($imageinfo['mime'] != 'image/gif' && $imageinfo['mime'] != 'image/jpeg')
    {
    echo "Sorry, we only accept GIF and JPEG images\n";
    exit;
    }
    http://www.scanit.be/uploads/php-file-upload.pdf

    --
    Nico





  9.  
    #9
    Ronald Klip
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Op Mon, 18 Aug 2008 10:36:27 +0200 schreef Rik Wasmus
    <luiheidsgoeroe@hotmail.com>:

    > On Sun, 17 Aug 2008 22:36:39 +0200, Rob <nospam@plea.se> wrote:
    >
    >> if (($_FILES["file"]["type"] == "image/gif")
    >> || ($_FILES["file"]["type"] == "image/jpeg")

    >
    >
    > Waarschijnlijk zegt MSIE wat anders (n.a.w. 'image/x-jpeg' o.i.d.), wat


    [snip]

    image/pjpeg, om precies te zijn.

    > Om te controleren of iets een plaatje is (waar ik wat mee kan) gebruik
    > ik normaal de GD functie getimagesize(): relatief laag resource gebruik,
    > en je weet zeker dat je het als plaatje kunt interpreteren:


    Nog een pedante opmerking: getimagesize() werkt ook zonder de GD-bieb.


    --
    Ronald


  10.  
    #10
    Maarten Wierda
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    Ronald Klip schreef:

    > Nog een pedante opmerking: getimagesize() werkt ook zonder de
    > GD-bieb.


    Ah, tuurlijk!


    --
    Groet,
    Maarten Wierda


  11.  
    #11
    Rik Wasmus
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    On Mon, 18 Aug 2008 12:56:20 +0200, Ronald Klip
    <nieuws@contentecontent.invalid> wrote:

    > Op Mon, 18 Aug 2008 10:36:27 +0200 schreef Rik Wasmus
    > <luiheidsgoeroe@hotmail.com>:
    >
    >> On Sun, 17 Aug 2008 22:36:39 +0200, Rob <nospam@plea.se> wrote:
    >>
    >>> if (($_FILES["file"]["type"] == "image/gif")
    >>> || ($_FILES["file"]["type"] == "image/jpeg")

    >>
    >>
    >> Waarschijnlijk zegt MSIE wat anders (n.a.w. 'image/x-jpeg' o.i.d.), wat

    >
    > [snip]
    >
    > image/pjpeg, om precies te zijn.
    >
    >> Om te controleren of iets een plaatje is (waar ik wat mee kan) gebruik
    >> ik normaal de GD functie getimagesize(): relatief laag resource
    >> gebruik, en je weet zeker dat je het als plaatje kunt interpreteren:

    >
    > Nog een pedante opmerking: getimagesize() werkt ook zonder de GD-bieb.


    Yup, dat gelukkig wel, alhoewel ik nog maar weinig PHP omgevingen /
    hostingspakketten zonder GD ben tegengekomen.
    --
    Rik Wasmus


  12.  
    #12
    Rik Wasmus
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    On Mon, 18 Aug 2008 11:11:25 +0200, Maarten Wierda
    <moart3nAT@chelloDOT.invalid> wrote:

    > Nico Schuyt schreef:
    >
    >> [Testen met if ($_FILES["file"]["type"] == "image/jpeg") e.d.]
    >>
    >>> ... Verder is dit een 'user-supplied' waarde, ofwel: totaal
    >>> onbetrouwbaar. Ik kan als ik dat wil best wel een nare executable
    >>> uploaden en beweren dat het een jpeg is.

    >> Dat is teleurstellend! Ik heb altijd gedacht dat het een controle op
    >> de header van het bestand was.

    >
    > Ook die valt theoretisch te manipuleren, meen ik.
    >
    >> Betekent dit dat je net zo goed de extensie kunt controleren?

    >
    > Theoretisch gezien wel, aangezien zowel met de headers als de extensie
    > van een bestand gerommeld kan zijn. Even de afmetingen van een bestand
    > opvragen middels de GD-functie getimagesize() lijkt me dus de beste
    > oplossing.


    Om daar op voor te borduren: zelfs geldige jpeg plaatjes kunnen PHP code
    geembed hebben zitten (bijvoorbeeld erin gezet met edjpgcom, voor de
    mensen die het met een hex editor te veel werk vinden). Nu zou daar
    normaal geen probleem mee moeten zijn (wie stelt er nu in dat jpeg
    bestanden door de PHP module/CGI heen moeten?), ware het niet dat:

    1) Sommige mensen zo graag rare extensies willen gebruiken voor bestanden
    die eigenlijk php zijn (.pdf, .html,.js, die eigenlijk naar een php script
    toe gaan waar on the fly wat wordt gegenereerd) en in plaats van een
    server side rewrite van de url maar gewoon alles door PHP halen. Niet
    alleen een slecht idee voor performance van de server, maar in dat geval
    ook een extreem veiligheidslek.

    2) Somnmige mensen denken mooi dat plaatje ergens anders dan rechtstreeks
    via de url te parkeren en dan in een PHP script met een include/require
    (!) alsnog het plaatje serveren, in plaats van met een readfile() of
    aanverwanten.

    Beiden grove fouten natuurlijk, maar je zou verbaasd staan over hoe vaak
    het nog voorkomt...
    --
    Rik Wasmus


  13.  
    #13
    Hans W
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    On Aug 18, 8:27*pm, "Rik Wasmus" <luiheidsgoe...@hotmail.com> wrote:
    > On Mon, 18 Aug 2008 11:11:25 +0200, Maarten Wierda *
    >
    >
    >


    > >> *Dat is teleurstellend! Ik heb altijd gedacht dat het een controle op
    > >> de header van het bestand was.

    >
    > > Ook die valt theoretisch te manipuleren, meen ik.

    >
    > >> Betekent dit dat je net zo goed de extensie kunt controleren?

    >
    > > Theoretisch gezien wel, aangezien zowel met de headers als de extensie
    > > van een bestand gerommeld kan zijn. Even de afmetingen van een bestand
    > > opvragen middels de GD-functie getimagesize() lijkt me dus de beste
    > > oplossing.

    >
    > Om daar op voor te borduren: zelfs geldige jpeg plaatjes kunnen PHP code *
    > geembed hebben zitten (bijvoorbeeld erin gezet met edjpgcom, voor de *
    > mensen die het met een hex editor te veel werk vinden). Nu zou daar *
    > normaal geen probleem mee moeten zijn (wie stelt er nu in dat jpeg *
    > bestanden door de PHP module/CGI heen moeten?), ware het niet dat:


    Er zijn php versies in de omloop waar je de ascii gewoon aan een
    plaatje
    geplakt ook kunt laten parsen als het op een bepaalde manier gelezen
    wordt.

    >
    > 1) Sommige mensen zo graag rare extensies willen gebruiken voor bestanden*
    > die eigenlijk php zijn (.pdf, .html,.js, die eigenlijk naar een php script *
    > toe gaan waar on the fly wat wordt gegenereerd) en in plaats van een *
    > server side rewrite van de url maar gewoon alles door PHP halen. Niet *
    > alleen een slecht idee voor performance van de server, maar in dat geval *
    > ook een extreem veiligheidslek.


    Op die manier inderdaad slecht. Het is echter zo dat dat niet zozeer
    aan
    php ligt maar aan de manier hoe Apache en andere webservers vaak zijn
    te configureren. Heb jaren lang default.ida's geparsed en daarmee
    shitlijsten
    weten te vullen als ze bepaalde argumenten meegaven.

    Hans
    > --
    > Rik Wasmus




  14.  
    #14
    Warden Dave
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    "Rik Wasmus" <luiheidsgoeroe@hotmail.com> wrote:

    > Waarschijnlijk zegt MSIE wat anders (n.a.w. 'image/x-jpeg' o.i.d.),
    > wat je natuurlijk makkelijk kunt controleren door de $_FILES array te
    > dumpen en te controleren. Verder is dit een 'user-supplied' waarde,
    > ofwel: totaal onbetrouwbaar. Ik kan als ik dat wil best wel een nare
    > executable uploaden en beweren dat het een jpeg is.
    >
    > Om te controleren of iets een plaatje is (waar ik wat mee kan) gebruik
    > ik normaal de GD functie getimagesize(): relatief laag resource
    > gebruik, en je weet zeker dat je het als plaatje kunt interpreteren:

    <knip>

    Maar ja... ook met het gebruik van 'getimagesize' weet je dat een paar
    velden een vorm hebben die verwacht wordt, meer niet. Over de verdere
    inhoud van het bestand weet je dan nog niets; dat kan net zo goed iets
    zijn als bijv. PHP-script. Het is overigens geen nieuw onderwerp.
    Zie o.a. deze suggesties & opmerkingen:
    http://ha.ckers.org/blog/20070604/pa...-getimagesize/

    WD


  15.  
    #15
    Rik Wasmus
    Gast
    n/a Berichten
    Berichten zijn liked




    Re: upload controleren op type (php)

    On Mon, 18 Aug 2008 23:23:32 +0200, Warden Dave <wardendave@mnsys.invalid>
    wrote:

    > "Rik Wasmus" <luiheidsgoeroe@hotmail.com> wrote:
    >
    >> Waarschijnlijk zegt MSIE wat anders (n.a.w. 'image/x-jpeg' o.i.d.),
    >> wat je natuurlijk makkelijk kunt controleren door de $_FILES array te
    >> dumpen en te controleren. Verder is dit een 'user-supplied' waarde,
    >> ofwel: totaal onbetrouwbaar. Ik kan als ik dat wil best wel een nare
    >> executable uploaden en beweren dat het een jpeg is.
    >>
    >> Om te controleren of iets een plaatje is (waar ik wat mee kan) gebruik
    >> ik normaal de GD functie getimagesize(): relatief laag resource
    >> gebruik, en je weet zeker dat je het als plaatje kunt interpreteren:

    > <knip>
    >
    > Maar ja... ook met het gebruik van 'getimagesize' weet je dat een paar
    > velden een vorm hebben die verwacht wordt, meer niet. Over de verdere
    > inhoud van het bestand weet je dan nog niets;


    Tja, we hebben hier 2 kanten van de thread, waar het mee begon is 'hoe kan
    ik zien wat voor plaatje het is', waarvoor getimagesize() prima geschikt
    is (in ieder geval beter dan extensie of mime-type controleren), waarbij
    je er van uit gaat dat als die deze test doorstaat je er in ieder geval
    iets mee kan (zoals dimensies aanpassen met de GD functies). Als mensen
    moedwillig verkeerde gebroken plaathes gaan uploaden is het een ander
    verhaal.

    > dat kan net zo goed iets
    > zijn als bijv. PHP-script. Het is overigens geen nieuw onderwerp.
    > Zie o.a. deze suggesties & opmerkingen:
    > http://ha.ckers.org/blog/20070604/pa...-getimagesize/


    Yup, goede verhalen. Ik zelf sla nooit user uploads op als bestand. Een
    prepared statement gebruiken voor een blob naar een database, en precies
    dezelfde blob weer teruggeven bij opvragen, dat is toch wel veiliger, en
    bovendien naar mijn idee makkelijker te administreren (zeker bij een
    systeem met 'gebruikers' houd ik nogal van ON DELETE CASCADE functies,
    handig zo'n database die direct gerelateerde info opruimt ). Met de
    juiste instellingen is het ook maar marginaal trager dan via het
    bestandssyteem serveren van de inhoud.
    --
    Rik Wasmus

  16. advertentie



Pagina 1 van de 3 1 2 3 LaatsteLaatste

Forum Rechten

  • Je mag geen nieuwe onderwerpen plaatsen
  • Je mag geen reacties plaatsen
  • Je mag geen bijlagen toevoegen
  • Je mag jouw berichten niet wijzigen
  •  



webhostingtalk.nl
Webhostingtalk.nl © copyright 2001-2013 Alle Rechten Gereserveerd.

Content Relevant URLs by vBSEO 3.6.0

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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75