Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload z weryfikacja rozszezenie...zmiana na inne
Forum PHP.pl > Forum > Przedszkole
boya
Witam
Na mojej www jest upload plikow...problem polega a tym ze uzytkownik jak doda soboie plik.php i znajdzie sciezke to sobie go wykona i moze niezle zamieszac jak pokombinuje dalej...

Mysle zeby zabezpieczyc to tak:


  1. <?
  2. $plik = $_FILES[file][tmp_name];
  3. $p = explode(&#092;".\", $plik);
  4. if (($p[1] == 'php') || ($p[1] == 'php3')){
  5. $p[1] = &#092;"txt\";
  6. $plik = $p[0]$p[1]; //i mamy plik.txt zamiast plik.php
  7. //upload
  8. }else{
  9. //upload
  10. }
  11. ?>


mam nadzije ze poszedlem w dobra strone...jedno pytanie jak zrobic aby przechytzyc takiego uzytkownika ktory wstawi mi taki plik: plik.php.php.php bo to tez sie wykona jak to zminic na plik.txt ?

pozdrawiam :roll2:
jbiz
php manual -> str_replace()
scanner
  1. <?php
  2. $_FILES['userfile']['name'] = 'test.php3';
  3. $aRestrictedExt = array ('php', 'php3' );
  4. $sExt = array_pop( explode( '.', $_FILES['userfile']['name'] ) );
  5. if( in_array( $sExt, $aRestrictedExt ) )
  6. {
  7. $_FILES['userfile']['name'] .= '.txt';
  8. }
  9. var_dump( $_FILES['userfile']['name'] );
  10. ?>
boya
hmm
moj uploadwoany plik to inaczej zmienna $file

lepiac kod scannera z moim wyszlo mi cos takiego

  1. <?
  2. $upa = $_FILES['file']['name']; 
  3. $userfile = $_FILES[file][tmp_name];
  4. $_FILES['file']['name'] = $userfile;
  5. $aRestrictedExt = array ('php', 'php3' );
  6. $sExt = array_pop( explode( '.', $_FILES['file']['name'] ) );
  7. if( in_array( $sExt, $aRestrictedExt ) )
  8. {
  9. $_FILES['file']['name'] .= '.txt';
  10. }
  11. var_dump( $_FILES['file']['name'] );
  12. move_uploaded_file($userfile, &#092;"./pliki_upload/\" .$_FILES['file']['name']);
  13. ?>


efektem działania tego jest plik na serverze plik.php
i teki error
string(18) "/var/tmp/phpHgug6q"

moze mi kto powiedziec co jest nie tak albo ja slepy jestem ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.