Eredmény: 1 - 8 (8) összesen

Téma: file feltöltés ellenőrzése

  1. #1
    Mentor Zaphod logója
    Csatlakozott
    08-01-21
    Hely
    Veszprém
    Hozzászólás
    324
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás file feltöltés ellenőrzése

    Tanácsot kérnék, egy aránylag egyszerű kérdésben.

    File feltöltés. No para. alapgyakorlat, megy is szépen. A gond azzal van, hogy ellenőrizni kellene a feltöltött fileokat. Mégpedig, hogy kizárólag csak pl. jpg, vagy gif, vagy flv, vagy csv, stb... típusúak lehetnek.

    Van rá pár lehetőség, de egyik sem megfelelő, mivel ezek mindegyikét egy fehérorosz hacker a napokban átverte és feltörte vagy 30 oldalamat, rohadék nagy károkat okozva.

    mime_content_type -> azt mondják elavult (sajnos az élet is ezt adja, bár...)
    $_FILES['upload_file']['type'] -> nem túl pontos (pl: az flv és a php is octet-string ként tér vissza)

    más ötlet? php-vel elsősorban, mivel többszáz scriptet kellene teljesen átírnom pl. a tisztán ajaxos feltöltéshez.



  2. #2
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: file feltöltés ellenőrzése

    Idézet Zaphod eredeti hozzászólása Hozzászólás megtekintése
    a tisztán ajaxos feltöltéshez.
    ilyen nem letezik.

    kow-nak hala elolvashatod ezt :hxxp://www.scribd.com/doc/6123910/Php-File-Upload

    vannak benne erdekes dolgok. a kepek elvileg egyszeruek. en minden feltoltott kepet jpeg-e konvertalok es elvileg igy kiderul ha nem keprol van szo, mert nem tudja megcsinalni a konvertalast a script.
    csv-nel szinten a feltoltes utan rogton vizsgalom a fajlt, hogy a szerkezete olyan e ami megengedett, ha nem akkor unlink.
    ami fontos hogy a serveren a jogok jol legyenek beallitva, plusz csak php kiterjesztest engedj futtatni.


    If debugging is the process of removing software bugs, then programming must be the process of putting them in.
    Github Rake tutorial
    Give a man a fish and you feed him for a day. Teach a man to fish and you feed him for a lifetime.
    Respect all, fear none

  3. #3
    Mentor Zaphod logója
    Csatlakozott
    08-01-21
    Hely
    Veszprém
    Hozzászólás
    324
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: file feltöltés ellenőrzése

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    en minden feltoltott kepet jpeg-e konvertalok es elvileg igy kiderul ha nem keprol van szo, mert nem tudja megcsinalni a konvertalast a script.
    csv-nel szinten a feltoltes utan rogton vizsgalom a fajlt, hogy a szerkezete olyan e ami megengedett, ha nem akkor unlink.
    ami fontos hogy a serveren a jogok jol legyenek beallitva, plusz csak php kiterjesztest engedj futtatni.
    No igen. az érdekességek innentől jönnek. Jómagam is minden feltöltött képet konvertálok egy thumbnail méretűre és egy nagyobbra. Ez nem akadályozta meg a barátunkat. A kérdésem lényege épp arra vonatkozott volna, hogy hogyan, milyen módszerrel vizsgálod pl a csv szerkezetét. A server a rendszergazda szerint jól van beállítva, és csak php-t enged futtatni az tuti. Konkértan az történt, hogy valahol először bejutott a csávó, feltöltött egy res.php-t, majd ezek után már ennek segítségével bemászott még vagy 30 oldalba, az index.php első sorába egy base64 php sorral szépen hivatkozott a saját res.php-ére, majd simán azt csinált amit akart. a linket köszönöm, megnézem.

    Megnéztem. Sokkal okosabb nem lettem, bár végre találtam egy preg_match sor, amivel hosszú ideje próbálkozom (hiába no, ez a fajta C-s szintakszis nem megy) Szóval itt is csak azok a megoldások vannak, amiket használtam eddig. Ennek és az eddigi saját fejlesztéseimnek eredményeképp már talán sikerül egy jobb ellenőrzést a feltöltések elé tenni. Most vizsgál kiterjesztésre, (nem túl nagy okosság, de azért legyen), majd vizsgál típusra. E kettő kombinálásával már talán jobban meg tudom szűrni, hogy mi az ami felmehet. Illetve képek esetében a feltöltés után elvégez egy konverziót is, ami ugyi a nem kép, akkor a script leáll.

    thx. ha vannak még ötletek, jöhetnek. talán hasznos lehet másnak is.


    Utoljára módosítva: Zaphod által : 2009-03-03 05:40 Oka: +info

  4. #4
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: file feltöltés ellenőrzése

    Idézet Zaphod eredeti hozzászólása Hozzászólás megtekintése
    Konkértan az történt, hogy valahol először bejutott a csávó, feltöltött egy res.php-t,
    ha ez tortent akkor valahol nem vizsgaltad meg rendesen a fajlt. vizsgald mindig a kiterjesztest is, es amikor pl. kepnel ujraepitem a gd-vel akkor nevezd at.
    a csv: en publikus feltoltesnel meg nem engedtem feltolteni csv(nem is jut eszembe semmi ahol erre szukseg lehet). a szerkezetet ugy vizsgalom hogy megvizsgalom az oszlopok szamat, utana a cimsorokat, ha ez is jo akkor mar csak az oszlopok adattipus ellenorzese van hatra. altalaban csv feltootest es adatbazis feltoteshez hasznalaok, ezert ha nem vizsgalnam ezt akkor eleg komoly karokat tudna maganak az oldalgazda egy rossz szerkezetu csv-vel okozni.
    es kiterjesztesre mingid tesztelj serveroldalon.



  5. #5
    Mentor Zaphod logója
    Csatlakozott
    08-01-21
    Hely
    Veszprém
    Hozzászólás
    324
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: file feltöltés ellenőrzése

    Idézet Geri07 eredeti hozzászólása Hozzászólás megtekintése
    ha ez tortent akkor valahol nem vizsgaltad meg rendesen a fajlt. vizsgald mindig a kiterjesztest is, es amikor pl. kepnel ujraepitem a gd-vel akkor nevezd at.
    a csv: en publikus feltoltesnel meg nem engedtem feltolteni csv(nem is jut eszembe semmi ahol erre szukseg lehet). a szerkezetet ugy vizsgalom hogy megvizsgalom az oszlopok szamat, utana a cimsorokat, ha ez is jo akkor mar csak az oszlopok adattipus ellenorzese van hatra. altalaban csv feltootest es adatbazis feltoteshez hasznalaok, ezert ha nem vizsgalnam ezt akkor eleg komoly karokat tudna maganak az oldalgazda egy rossz szerkezetu csv-vel okozni.
    es kiterjesztesre mingid tesztelj serveroldalon.
    Egy apró, ám fontos dolog kimaradt. Nálam KIZÁRÓLAG nem publikus részekről lehet fileokat feltölteni. Egyetlen oldalamon sincs publikus file feltöltés. Sem kép, sem semmi más. A hack jelszóval védett területen történt. A kiterjesztéseket minden esetben megvizsgálom, bár nem nagy okosság átnevezni a php-t. pl. jpg-re. Igazából nem arra lettem volna kiváncsi, hogy miként bontasz szét egy csv-t és írod db-be a tartalmát, hanem hogy feltöltéskor miként állapítod meg, (még feldolgozás előtt) hogy valóban csv amit kaptál. A $_FILES['file']['type'] a csv esetében is application/octet-strem, meg az flv esetében is, de a php esetében is. A videokat pl. csak flv-ben engedem meg. De így nem tudom vizsgálni, hogy amit feltölt valóban flv , vagy netán egy (kiterjesztés nélküli) php. Na erre varrjunk gombot.



  6. #6
    Rubyist Geri logója
    Csatlakozott
    07-12-15
    Hely
    \x90
    Hozzászólás
    5.605
    Begyűjtött 1.332 köszönetet
    828 hozzászólásával

    Alapbeállítás re: file feltöltés ellenőrzése

    Idézet Zaphod eredeti hozzászólása Hozzászólás megtekintése
    A kiterjesztéseket minden esetben megvizsgálom, bár nem nagy okosság átnevezni a php-t. pl. jpg-re.
    de ha nem futtathato csak a php kiterjesztes akkor nem er semmit az atnevezett fajl-al.
    Idézet Zaphod eredeti hozzászólása Hozzászólás megtekintése
    Igazából nem arra lettem volna kiváncsi, hogy miként bontasz szét egy csv-t és írod db-be a tartalmát, hanem hogy feltöltéskor miként állapítod meg, (még feldolgozás előtt) hogy valóban csv amit kaptál.
    itt fut a validalo script es ha false-al ter vissza akkor torlom a fajlt. tehat nem lenne ra ido hogy a feltolto megnyissa a fajlt.

    de ha jelszoval vedett reszen tortent a feltoltes akkor lehet a login script-et tortek fel, vagy az ftp jelszavadat loptak el(total commander hasznalata ellenjavalt.)
    szerintem a legbiztonsagosabb megoldas: csak php kiterjesztes futasanak engedelyezese es fajlkiterjestes ellenorzese.



  7. #7
    Bölcs
    Csatlakozott
    07-08-28
    Hozzászólás
    1.024
    Begyűjtött 146 köszönetet
    105 hozzászólásával

    Alapbeállítás re: file feltöltés ellenőrzése

    Amit én szoktam használni:
    - egy a webről elérhetetlen mappába kerül elősször a file, hogy kimetsem a /tmp-ből.
    - Ha képet várok, akkor az egyen konverzió jpg-re.
    - File kiterjesztés vizsgálata. Ez nagyon fontos, hiszen az apache ez alapján dönti el, hogy mivel fogja lefuttatni.
    - FLV és egyébb videó fileok. Átfuttatom egy ffmpeg-en ha van a szerveren.
    - Ami még be szokott jönni, hogy minden feltöltés egy mappába megy ahol .htaccess-el letiltom a php futtatást (addhanlder) igy még ha valahogy sikerült is feljutattnia valamit, akkor is max a saját forrását látja viszont.



  8. #8
    Mentor Zaphod logója
    Csatlakozott
    08-01-21
    Hely
    Veszprém
    Hozzászólás
    324
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: file feltöltés ellenőrzése

    Idézet TLoF eredeti hozzászólása Hozzászólás megtekintése
    Amit én szoktam használni:
    - Ami még be szokott jönni, hogy minden feltöltés egy mappába megy ahol .htaccess-el letiltom a php futtatást (addhanlder) igy még ha valahogy sikerült is feljutattnia valamit, akkor is max a saját forrását látja viszont.
    ez zseniális ötlet, ki fogom próbálni. thx



A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •