Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Upload plików, Zabezpieczenia
Macok
post 14.10.2006, 18:47:29
Post #1





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 31.08.2006

Ostrzeżenie: (0%)
-----


Mam taki kod służący do uploadu obrazków.
Czy istnieją jakieś inne metody na zabezpieczenie sie przed hackerami, próbującymi uploadowac na serwer plikow do kradniecia danych?
  1. <?php
  2. $max_rozmiar = 1024*1024;
  3. if (is_uploaded_file($_FILES['plik']['tmp_name'])) {
  4. if ($_FILES['plik']['size'] > $max_rozmiar) {
  5. echo 'Błąd! Plik jest za duży!';
  6. } else {
  7. echo 'Odebrano plik. Początkowa nazwa: '.$_FILES['plik']['name'];
  8. echo '<br/>';
  9. if (isset($_FILES['plik']['type'])) {
  10. echo 'Typ: '.$_FILES['plik']['type'].'<br/>';
  11. }
  12. move_uploaded_file($_FILES['plik']['tmp_name'],
  13. $_SERVER['DOCUMENT_ROOT'].'/foto/'.$_FILES['plik']['name']);
  14. }
  15. } else {
  16.  echo 'Błąd przy przesyłaniu danych!';
  17. }
  18.  
  19. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
mdco
post 14.10.2006, 19:13:14
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 5
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


W skrypcie trzeba zawrzeć warunek aby nie mogli wrzucać plików wykonywalnych, czyli np. plików z rozszerzeniem php.


--------------------
zmoderowano - rozmiar
Go to the top of the page
+Quote Post
revyag
post 14.10.2006, 19:44:37
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Możesz sprawdzać mime type uploadowanego pliku. Masz go w
  1. <?php
  2. $_FILES['plik']['type']
  3. ?>


--------------------
-------------

------
Go to the top of the page
+Quote Post
Macok
post 14.10.2006, 20:10:41
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 0
Dołączył: 31.08.2006

Ostrzeżenie: (0%)
-----


Dzieki, wygląda na to ze sie udalo.
Mam jeszcze 2 pytania.

1. Jesli ktos uploaduje plik o nazwie ktora jest juz na serwerze to stary plik sie usuwa. Co zrobic zeby tak sie niedzialo?
2. Jak potem wyswietlic te pliki na stronie?
Go to the top of the page
+Quote Post
yaro
post 14.10.2006, 20:36:37
Post #5





Grupa: Zarejestrowani
Postów: 160
Pomógł: 4
Dołączył: 22.04.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


proponuje sprawdzanie pliku po jego rozszerzeniu ale nie po mime, bo mime może być inne niż w rzeczywistości jest plik.

is_file() - sprawdzanie czy już taki plik istnieje

a tak można sprawdzić czy jest to grafika
Kod
$x = getimagesize($_FILES['plik']['tmp_name']);
if(!is_array($x) || $x[0] < 2))
{
    echo "Zły plik graficzny";
}


Jeszcze proponuje sprawdzić czy nie jest to jakiś plik 1x1000px
Kod
list($width $height) = getimagesize($_FILES['plik']['tmp_name']);


Ten post edytował yaro 14.10.2006, 20:36:52


--------------------
Go to the top of the page
+Quote Post
jarrod
post 14.10.2006, 20:58:35
Post #6





Grupa: Zarejestrowani
Postów: 312
Pomógł: 9
Dołączył: 14.10.2006
Skąd: warszawa

Ostrzeżenie: (0%)
-----


Cytat(yaro @ 14.10.2006, 21:36:37 ) *
Kod
$x = getimagesize($_FILES['plik']['tmp_name']);

ja bym do tego dodał @ aby wygłuszyć błędy:
Kod
$x = @getimagesize($_FILES['plik']['tmp_name']);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:04