![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Kod $max_rozmiar = 1024*1024; if (is_uploaded_file($_FILES['plik']['tmp_name'])) { if ($_FILES['plik']['size'] > $max_rozmiar) { echo 'Błąd! Plik jest za duży!'; } else { echo '<br><br><br><font color="CA0000" size="4"><center>News dodany!</font><br>'; echo '<a href="dodaj_newsa.php">Dodaj kolejnego</a>'; move_uploaded_file($_FILES['plik']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/foto/'.$_FILES['plik']['name']); } } else { echo 'Błąd przy przesyłaniu danych!'; } Nie wiem jak zrobić, aby na serwer można było ładować tylko image - gif, jpg. Bardzo prosiłbym o pomoc. znalazłem w internecie: Kod Należy zauważyć, że ten skrypt jest wolny od zabezpieczeń i jeżeli folder do którego wysyłamy pliki jest dostępny z przeglądarki potencjalny włamywacz może wysłac niebezpieczny skrypt *.php i go wykonać. Najlepszym rozwiązaniem jest utworzyć folder poza drzewem katalogów i w nim trymac uploadowane pliki. [b]poprawiona wersja kodu:[/b] [img]http://compzone.org/images/numbers/2.png[/img] <?php [img]http://compzone.org/images/numbers/3.png[/img] $rot = $_SERVER['DOCUMENT_ROOT']; [img]http://compzone.org/images/numbers/4.png[/img] [img]http://compzone.org/images/numbers/5.png[/img] move_uploaded_file($_FILES['plik']['tmp_name'], "$rot/../wyslane/".$_FILES['plik']['name']); [img]http://compzone.org/images/numbers/6.png[/img] ?> - czy to zabezpiecza wystarczająco przed włamem? Ktoś może wgrać plik .php... Czy mój wcześniejszy kod jest dobrze zabezpieczony? Proszę o odopwiedź. Ten post edytował Larges 26.05.2008, 21:37:36 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 27 Dołączył: 13.07.2005 Skąd: Jarocin Ostrzeżenie: (0%) ![]() ![]() |
Przed wysłaniem formularza dać warunek przez np if(eregi($string, $string2)){}else{} polecam manulala pl.php.net/eregi
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo mi to wyjaśnia sprawę.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
ja używam funkcji getimagesize" title="Zobacz w manualu PHP" target="_manual do sprawdzenia typu danych/obrazka - rozpoznaje popularne formaty graficzne nawet (!) jeśli rozszerzenie będzie inne, np zdjęcie o nazwie "wakacje.exe" mimo iż jest poprawnym plikiem jpeg to nie przeszło by przez większość walidatorów ze względu właśnie na rozszerzenie a dzięki tej metodzie zostanie rozpoznane i przejdzie poprawnie. Polecam tylko zmianę rozszerzenia plików na właściwe dla danego typu już po dokonaniu uploadu żeby uniknąć innych kwiatków.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 333 Pomógł: 16 Dołączył: 13.05.2008 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Kod $plik_nazwa = $_FILES['plik']['name']; echo "$plik_nazwa"; $sp = explode(".",$plik_nazwa); // sprawdzamy rozszerzenie if($sp[1] == "gif" or $sp[1] == "jpg" or $sp[2] == "JPG" or $sp[3] == "GIF") { $spp = "1"; } else { $spp = "0"; } if ($spp = "1") { $max_rozmiar = 1024*1024; if (is_uploaded_file($_FILES['plik']['tmp_name'])) { if ($_FILES['plik']['size'] > $max_rozmiar) { echo 'Błąd! Plik jest za duży!'; } else { echo '<br><br><br><font color="CA0000" size="4"><center>News dodany!</font><br>'; echo '<a href="dodaj_newsa.php">Dodaj kolejnego</a>'; move_uploaded_file($_FILES['plik']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/foto/'.$_FILES['plik']['name']); } } else { echo '<br><br><br><font color="CA0000" size="4"><center>News dodany!</font><br>'; echo '<a href="dodaj_newsa.php">Dodaj kolejnego</a>'; } } } Co w tym kodzie może być złego? jeśli dam if ($spp = "1") - ładuje się każdy plik, jeśli if ($spp == "1") - żaden. Dziękuję za pomoc. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
jeden znak = to przypisanie wartości - zawsze zwraca true w warunku logcznym bo wartość zostaje przypisana do zmiennej == równości to równe === to z kolei dokładnie takie jak/identyczne - nie następuje tu rzutowanie zmiennych na podobne typy
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 17:29 |