Zdravím.
Spravil som si skript na uploadovanie gif obrazkov. V tom skripte mam takuto ochranu, aby sa dali uploadovat iba gif obrazky a nic ine.
Kód:
if($_FILES['uploadedfile']['type'] == "image/gif").....
Problem je v tom, ze tato ochrana vobec nieje bezpecna. Nasiel som si tento perl skript, ktory dokaze odoslat php skript a priradi lubovolny mime typ. V mojom pripade image/gif.
Kód:
#!/bin/perl
#
use LWP;
use HTTP::Request::Common;
$ua = $ua = LWP::UserAgent->new;;
$res = $ua->request(POST 'http://localhost/upload.php',
Content_Type => 'form-data',
Content => [
uploadedfile => ["skuska.php", "skuska.php", "Content-Type" =>
"image/gif"],
],
);
print $res->as_string();
Teda, perl skript pripojil k php skriptu hlavicku Content_Type: image/gif a odoslal ho uploadovaciemu suboru. Ten dostal v hlavice odpoved ze uploadovany subor je image/gif a bez vahania ho uploadol.
Vysledok bol taky, ze pomocou jedneho kratkeho perl skriptu som si na takto zabezpeceny server mohol uploadovat subory
akehokolvek formatu.
Moja otázka znie: ako mám zabezpecit uploadovaci skript tak, aby bol bezpecny?
Vopred diki za rady
PS:ak niekto neveri, spravte si takyto upload obrazkov, hodte sem link a ja vam to ukazem.