Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czy powinienem walidować nazwę pliku przy wgrywaniu na serwer ?
JAWS
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.02.2009

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


Czy powinienem walidować nazwę pliku graficznego przy wgrywaniu na serwer ?


Bo chce zapamiętywać nazwę pliku w bazie danych, czyli to:

$_FILES['plik']['name']
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
lukasz91
post
Post #2





Grupa: Zarejestrowani
Postów: 149
Pomógł: 7
Dołączył: 6.01.2010
Skąd: Opole Lubelskie

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


Moim zdaniem tak. W nazwie pliku także mogą występować znaku typu: ', *
więc toeretycznie możliwy jest atak sql injection


--------------------
Go to the top of the page
+Quote Post
piotr94
post
Post #3





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


poza tym waliduj, czy ktoś Ci nie wysyła pliku php (czyli *.php, *.php3, *.php5, lub ogólnie *.php*)
Raz taką lukę miało forum przema i można było przez nie dostać się na serwer i edytować wszystkie pliki


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
Pilsener
post
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Zasada powinna być prosta: co nie jest dozwolone jest zabronione, więc absolutnie niedopuszczalne jest, by ktoś mógł wrzucać pliki o dowolnej nazwie - nazwa pliku powinna zawierać określony zestaw znaków, nie być za długa i mieć odpowiednie rozszerzenie. Ktoś kto używa znaków specjalnych w nazwach plików raczej czystych intencji nie ma, a nawet jeśli to nazwę pliku przecież łatwo zmienić.
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #5





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Najlepiej zamieniaj wszystkie znaki kóre są spoza jakiegoś określone zakresu np. [a-zA-Z0-9_.] na np. "_" albo kropkę a do tego sprawdzaj "type" pliku z tablicy $_FILES i po kłopocie


--------------------
My mind is glowing ...
Jeśli pomogłem push the button :)
Go to the top of the page
+Quote Post
blooregard
post
Post #6


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




A dla pełnego bezpieczeństwa jeszcze możesz zrobić whitelist'ę z dopuszczalnymi typami MIME i z góry odrzucać te, któe mają inny, niż dopuszczalny.
Plus kontrola wielkości pliku z ograniczeniem do np. max 1MB, zapominając o tym, możesz dopuścić do ataku DoS/DDoS na serwer, jeśli z wielu lokacji zacznie Ci ktoś ładowac pliki po kilkaset MB

Ten post edytował blooregard 27.01.2010, 15:22:01


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
JAWS
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.02.2009

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


Dzięki za odpowiedzi, mam jeszcze jedno pytanie, chce wyłączyć wyświetlanie błędów w skrypcie i stosuje coś takiego:

  1. ini_set('display_errors', 'off');


tylko jak zrobię jakiś błąd np.

  1. echo "aaaaaa"


to mi pokazuje ten błąd jakby nic się nie zmieniło. Czy można jakoś to wyłączyć z poziomu samego kodu ?

Ten post edytował JAWS 27.01.2010, 22:34:58
Go to the top of the page
+Quote Post
Lejto
post
Post #8





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

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


zainteresuj się http://php.net/manual/pl/function.error-reporting.php


--------------------
Go to the top of the page
+Quote Post
JAWS
post
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 28.02.2009

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


  1. ini_set('display_errors', 'off');


mam i przy

  1. echo ''


ciągle pokazuje błąd.
Go to the top of the page
+Quote Post
Crozin
post
Post #10





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


No bo
  1. echo ''
To błąd składni - czyli kod PHP się w ogóle nie wykona - czyli instrukcje ini_set..., error_reporting... też nie zostaną wykonane. Musiałbyś w php.ini (czy to bezpośrednio, czy np. przez .htaccess) wyłączyć raportowanie błędów.
Go to the top of the page
+Quote Post
jajcarzd1
post
Post #11





Grupa: Zarejestrowani
Postów: 215
Pomógł: 19
Dołączył: 24.12.2003
Skąd: Przemyśl

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


Zainteresuj się może funkcją register_shutdown_function()


--------------------
My mind is glowing ...
Jeśli pomogłem push the button :)
Go to the top of the page
+Quote Post
darko
post
Post #12





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


A ja jeszcze dodam, że warto walidować nazwę i wywalać wszystkie znaki typowe dla polskiego alfabetu (ą, ć ę, ź itd.), niemieckiego alfabetu (umlauty itd.) i norweskiego (te o z kreską itp.) (i cały: rosyjski, arabski i grecki ?) gdyż czasami mogą pojawić się problemy. Miałem kiedyś problemy z wyświetlaniem miniatur obrazków zawierających polskie znaki. W skrócie: zostawiamy tylko alfabet łaciński.

Ten post edytował darko 29.01.2010, 13:28:04


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
thek
post
Post #13





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Żeby tylko problem z wyświetleniem winksmiley.jpg Czasem taki plik jest trudny do jakiejkolwiek operacji z usunięciem z serwera włącznie dry.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
darko
post
Post #14





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Racja ~thek - ciekawe czy da radę zapchać całą wolną przestrzeń na serwerze takimi plikami nie do usunięcia? blinksmiley.gif
typ ataku: multi-lang-filenames-diacritics-freespace-overflow winksmiley.jpg

Ten post edytował darko 29.01.2010, 14:01:34


--------------------
Nie pomagam na pw, tylko forum.
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 Aktualny czas: 20.08.2025 - 12:14