Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] upload, dobre zabezpiecenia.
Forum PHP.pl > Forum > PHP
FireMan
Witam,
chodzi mi o bezpieczeństwo uploadu.
- zrobiłem sprawdzanie rozszerzenia (tylko .JPG),
- file=>type też sprawdzam,
- ilość kropek w nazwie pliku, gdy jest więcej niż 1, plik nie wgra się,
Co mogę jeszcze dać ?
Sprawdzanie treści pliku i szukanie zmiennych PHP i HTML ?
cycofiasz
sprawdź rozmiary obrazka w pikselach
FireMan
Cytat(cycofiasz @ 21.08.2011, 11:26:06 ) *
sprawdź rozmiary obrazka w pikselach


To znaczy ? Czy obrazek ma 0px 0px ?
lukaskolista
jak sprawdzasz typ pliku (JPG)?
FireMan
Cytat(lukaskolista @ 21.08.2011, 11:27:29 ) *
jak sprawdzasz typ pliku (JPG)?

Najpierw liczę kropki, jak jest 1, to explode i sprawdzam rozszerzenie czy jest JPG czy JPEG, potem file->type czy jest 'image/jpeg', potem jeszcze rozmiar i inne pierdoły.
cycofiasz
Rozszerzenie pliku nie powinno mieć większego znaczenia. Użyj funkcji http://php.net/manual/en/function.getimagesize.php
FireMan
Cytat(cycofiasz @ 21.08.2011, 11:42:34 ) *
Rozszerzenie pliku nie powinno mieć większego znaczenia. Użyj funkcji http://php.net/manual/en/function.getimagesize.php

Dzięki, przyda się. Dodam sprawdzanie Width, Height, i Type. Zależy mi na bezpieczeństwie.

//Edit, przydało się. Teraz zrobiłem, że zdjecia z zwykłym tekstem np. php i html, nie będą wgrywane.
uirapuru
jak Ci bardzo zależy na wyfiltrowaniu danych, które nie powinny się pojawić w pliku przesłanym, to możesz odczytać plik z $_FILES, przeskalować go bądź obrobić w jakikolwiek inny sposob (a i to niekoniecznie) i zapisać z pomocą biblioteki graficznej do pliku wynikowego. Wtedy masz gwarancję, że nowy plik jest _nowy_, stworzony jedynie na podstawie danych graficznych ze źródłowego smile.gif

Kod
$oImage = imagecreatefromjpeg('plik_wejsciowy.jpg');
imagejpeg($oImage, 'nowy_plik.jpg', $jakosc);

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.