Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zastita PHP uploadera

[es] :: PHP :: Zastita PHP uploadera

[ Pregleda: 1915 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Wapx.WS
nezaposlen
beograd

Član broj: 258532
Poruke: 36
*.dynamic.isp.telekom.rs.

Sajt: wapx.ws


Profil

icon Zastita PHP uploadera28.01.2011. u 11:52 - pre 161 meseci
Zanima me kako mogu da zastitim php uploader od shellova i slicnih stvarcica?
Za sada koristim
Code:

if (!eregi("\.(mid|gif|bmp|mid|midi|3gp|mp3|wav|mpn|nth|mpc|jar|jad|jpeg|jpg|sis|mmf|amr|thm|png|wbmp)$",$file)) {
        echo "Unsupported extension!";
        exit();
    }

u samom fajlu za proveru
Code:

RemoveType .pl .cgi .php .gif .php .jpg .php .png.php .php3 .php4 .php5 .xml .phtml .phtm .html .htm .wml .shtm .shtml
RemoveHandler .pl .cgi .php .gif .php .jpg .php .png .php .php3 .php4 .php5 .xml .phtml .phtm .html .htm .wml .shtm .shtml  

htaccess u folderu gde se fajlovi nalaze, da sprecim njihovo izvrsavanje ako se kojim cudom i nadju u folderu
Da napomenem da svaki fajl preimenujem random stringom i cuvam sa njegovom ekstenzijom.
Znaci zanima me da li postoji jos neki nacin da se probije ova zastita?
Hvala.

 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
*.dynamic.isp.telekom.rs.



+34 Profil

icon Re: Zastita PHP uploadera28.01.2011. u 17:45 - pre 161 meseci
Citat:
Wapx.WS: Zanima me kako mogu da zastitim php uploader od shellova i slicnih stvarcica?
Za sada koristim
Code:

if (!eregi("\.(mid|gif|bmp|mid|midi|3gp|mp3|wav|mpn|nth|mpc|jar|jad|jpeg|jpg|sis|mmf|amr|thm|png|wbmp)$",$file)) {
echo "Unsupported extension!";
exit();
}



Provera fajla po ektenziji nije dovoljna zastita. Kakvu vrstu fajlova ocekujes?

Ja kao helper koristim [url=mailto:http://getid3.sourceforge.net/]getId3[/url] paket za validaciju fajlova. I jako ga je lako koristiti:
Code (php):

          /**
          * Prevalidation of object; will check if this is actually a valid song type and if it is, fill 'mime' column
          * This validation for mime will happen only upon inserting the object
          * There is no need for later to check mime again, file will not be changed
          */

          public function preInsert(Doctrine_Event $event)
          {
               $errorStack = $this->getErrorStack() ;
               $results = $this->getId3Results() ;
               if ( !isset($results['fileformat']) OR ( $results['fileformat']!='mp3' ) )
                    $errorStack->add('mime', 'Not a valid song') ;
               else {
                    $this->mime = $results['mime_type'] ;
                    $this->filename = $this->createNewFilename() ;
                    $this->length = $results['playtime_string'] ;
               }
               parent::preInsert($event) ;
          }

          /**
          * Analyze file
          *
          * @return mixed
          */

          public function getId3Results()
          {          
               $getid3 = new getID3();
               $getid3->encoding = 'UTF-8';
               $fileInfo = $getid3->Analyze($this->getFilePath());
               return $fileInfo ;  
          }
 
 
Odgovor na temu

Wapx.WS
nezaposlen
beograd

Član broj: 258532
Poruke: 36
*.dynamic.isp.telekom.rs.

Sajt: wapx.ws


Profil

icon Re: Zastita PHP uploadera29.01.2011. u 17:05 - pre 161 meseci
Ocekujem sve ove fajlove koji su nabrojani u eregi. Dakle mid|gif|bmp|mid|midi|3gp|mp3|wav|mpn|nth|mpc|jar|jad|jpeg|jpg|sis|mmf|amr|thm|png|wbmp i mozda jos par njih.
E sad zanima me da li je dovoljno da proveravam mime type preko $_FILES['uploaded_file']['type']?
I jos jedno pitanje. Kako mogu da "nateram" .htaccess da se odnosi na sve podfoldere ali ne i na sam folder gde se nalazi? Da li je to moguce? Hvala.

 
Odgovor na temu

mitke013
As Divljine
Freelancer

Član broj: 231934
Poruke: 338
*.dynamic.isp.telekom.rs.



+34 Profil

icon Re: Zastita PHP uploadera29.01.2011. u 18:13 - pre 161 meseci
Citat:
Wapx.WS: Ocekujem sve ove fajlove koji su nabrojani u eregi. Dakle mid|gif|bmp|mid|midi|3gp|mp3|wav|mpn|nth|mpc|jar|jad|jpeg|jpg|sis|mmf|amr|thm|png|wbmp i mozda jos par njih.
E sad zanima me da li je dovoljno da proveravam mime type preko $_FILES['uploaded_file']['type']?

Ne, zato sam ti i rekao da koristis server-side validaciju. 'Type' se moze izmeniti sa client-side.

 
Odgovor na temu

Wapx.WS
nezaposlen
beograd

Član broj: 258532
Poruke: 36
*.dynamic.isp.telekom.rs.

Sajt: wapx.ws


Profil

icon Re: Zastita PHP uploadera30.01.2011. u 12:41 - pre 161 meseci
Ok, a da li je provera bitrate u redu za mp3 fajlove?
Znaci
Code:

if(isset($bitrate) and is_numeric($bitrate)) {
echo "File je mp3";
}
else {
echo "File nije mp3";
}

Naravno uz proveru ekstenzije.
Sta je u stvari ono sto imaju validni fajlovi a ovi ostali ne?

Hvala.
 
Odgovor na temu

[es] :: PHP :: Zastita PHP uploadera

[ Pregleda: 1915 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.