![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Ostatnio spłodziłem skrypt uploadu plików na serwer i chciałem do niego dodać nową funkcjonalność, mianowicie, możliwość uploadowania plików z linku (odnośnika). Nie wiem, jak się do tego zabrać, mam kilka pytań:
1. Są jakieś gotowe funkcje? 2. Jak się zabezpieczyć przed wstrzyknięciem jakiegoś cuda? 3. Na ile mogę wykorzystać swój skrypt uploadu z dysku (jakie różnice)? Nie chcę gotowca, na forum i w Googlach znalazłem co nieco, ale za mało, żeby zakumać temat. -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 44 Dołączył: 17.02.2004 Skąd: Wieliczka Ostrzeżenie: (10%) ![]() ![]() |
skorzystaj np z http://php.net/manual/en/function.file-get-contents.php
zabezpieczenie? -np. sprawdzaj rozszerzenie i typ mime -------------------- neverever
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Nie chcę pobrać pliku do obróbki, chcę tylko uploadować. Zrobiłem tak (nie bić za mocno):
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zamiast tak sypać rozszerzeniami zrób tablicę dozwolonych i potem tylko
if( in_array( $rozszerzenie, $tablica_dozwolonych ) ) Zamiast tak jechać ze str_replace i pregami prościej posłużyć się filter_var i sanitize'ować nazwę. Zamiast count($sp)-1 czemu nie używasz iteratorów tablicowych?Ogólnie jak sam widzisz, można z kodu jeszcze wyciskać wiele ![]() Poza tym masz tylko sprawdzenie rozszerzenia? A co z MIME? Bo dam Ci plik do którego na końcu dokleję za prawidłowym rozszerzeniem .psd i uzna mi to za plik photoshopa, choć to może być exe ![]() By być w miarę pewnym co tojest, musiałbyś jednak otwierać plik i po typie rozszerzenia sprawdzać poprawność nagłówka pliku danego typu ![]()
Powód edycji: [thek]: Mały dopisek o nagłówkach
-------------------- 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
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Naczytałem się (na tym forum), że i MIME nie daje żadnej pewności...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Nie daje, jeśli sprawdzasz je w tablicy $_FILES.
Za to daje NAJWIĘKSZĄ pewność, jeśli sprawdzisz je po stronie serwera - albo przez rozszerzenie w PHP (choć nie zawsze jest dostępne), albo - co polecam - poprzez odpalenie komendy file -bi /home/sadfsdf/sdfsdf/sdfsdf/plik. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#7
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Nic z tego nie wiem, tak daleko moja wiedza jeszcze nie sięga...
-------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 08:15 |