Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] upload - bezpieczeństwo
puz219
post 29.10.2007, 19:52:05
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Witam.

Mam skrypt, który uploaduje mi pliki na serwer.

Chciałbym, żeby pliki były zapisywane w głównym katalogu na serwerze (tam, gdzie plik index.php), lecz nie wiem czy to jest bezpieczne, gdyż muszę mu nadać atrybut 777, a jeśli zmienię na 750 (takie mam domyślne), to wtedy funkcja nie działa.

I teraz, czy to jest bezpieczne, czy raczej tak się nie powinno robić (chodzi o zmienianie atrybutów na 777)questionmark.gif?

Proszę o odp. lub jakieś rady jak ewentualnie zmodyfikować tą funkcję, żeby zapisywała pliki w folderze z atrybutem 750.

ewentualnie będę wdzięczny za jakiś inny sposób rozwiązania tego problemu.

Tu jest kod pliku upload.php
  1. <?php
  2. $plik_tmp = $_FILES['plik']['tmp_name'];
  3. $plik_nazwa = $_FILES['plik']['name'];
  4. $plik_rozmiar = $_FILES['plik']['size'];
  5. $plik_nazwa_znaki = znaki("$plik_nazwa");
  6.  
  7. if(is_uploaded_file($plik_tmp)) {
  8. move_uploaded_file($plik_tmp, "$plik_nazwa");
  9.  
  10. echo "Plik: <strong>$plik_nazwa</strong> o rozmiarze 
  11. <strong>$plik_rozmiar bajtów</strong> został pomyślnie przesłany na serwer!";
  12. }
  13. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
nevt
post 30.10.2007, 16:55:21
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


nie jest to bezpieczne. zrób podkatalog serwisu i tam nadaj uprawnienia do uploadu. jeśli koniecznie potrzebujesz tych plików tam gdzie index.php (ścieżki ci nie działają czy co?), to po uploadzie przenoś je tam skryptem po stronie serwera...

Ten post edytował nevt 30.10.2007, 16:55:52


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
puz219
post 30.10.2007, 18:17:35
Post #3





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


a czy jest jakaś funkcja, która do tego służy, czy może trzeba ją samemu napisać.

Proszę o jakieś wskazówki

Ten post edytował puz219 30.10.2007, 18:24:03
Go to the top of the page
+Quote Post
marcio
post 30.10.2007, 18:26:49
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


ale o jaka funckje chodzi do czego?bo juz nie rozumiem


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
puz219
post 30.10.2007, 20:07:41
Post #5





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


chodzi o funkcję, która przeniesie mi plik z jednego folderu na serwerze do drugiego folderu na tym samym serwerze.

Czy taka funkcja istnieje??
Go to the top of the page
+Quote Post
marcio
post 30.10.2007, 20:12:59
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


mozesz uzyc do tego copy() rename() lub nie wiem czy tak mozna ale moglbys je tez skopiowac za pomoca exec() system() lub fpassthru()


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
puz219
post 31.10.2007, 07:42:06
Post #7





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


tylko, że znów jest problem.
Ani funkcja copy(), ani rename() nie działa.

Wyświetla sie błąd - PERMITION DENIED, co oznacza, że nie mam praw do zapisu pliku w tym folderze, chodzi o folder główny (chmod ustawione na 750).

Czy nie da się tego ominąć, bez zmieniania chmod-ów, bo jest to upload dostępny tylko dla użytkowników o prawach administratora serwisu, czyli jak narazie tylko dla mnie.

Proszę o pomoc.

Ten post edytował puz219 31.10.2007, 07:42:38
Go to the top of the page
+Quote Post
Dudziński
post 31.10.2007, 08:23:24
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 30.10.2007
Skąd: Częstochowa

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


Można spróbować

<?php
$lokalizacja = "/inny folder/".$nowanazwapliku;
move_uploaded_file($_FILES[$nazwapliku]['tmp_name'], $lokalizacja);
chmod($lokalizacja, 0777);
?>


--------------------
www.cfstudio.pl
Go to the top of the page
+Quote Post
puz219
post 31.10.2007, 11:47:04
Post #9





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


wygląda na to, że i ta opcja nie działa, ale to jest nawet dobry pomysł, tylko, żeby to robiło w ten sposób, najpierw zmieniało chmod folderu głównego na 777, potem przenosiło do niego plik, a po tym zmieniało z powrotem chmod na 750.
Lecz funkcja chmod nie działa u mnie prawidłowo - brak dostępu.

czy ktoś ma jeszcze jakieś pomysły, bo mi sie już wyczerpały sciana.gif

Ten post edytował puz219 31.10.2007, 11:47:58
Go to the top of the page
+Quote Post
marcio
post 31.10.2007, 18:24:53
Post #10





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


a spruboj exec()


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
puz219
post 6.11.2007, 07:46:05
Post #11





Grupa: Zarejestrowani
Postów: 201
Pomógł: 0
Dołączył: 1.07.2007

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


Ale funkcja exec()" title="Zobacz w manualu PHP" target="_manual to jest chyba do uruchomienia jakiegoś programu, o ile dobrze rozumuję z manuala, nie wiem jak za jej pomocą przenieść plik.

Mógłbyś i wyjaśnić?
Go to the top of the page
+Quote Post
marcio
post 6.11.2007, 17:46:48
Post #12





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


nie wiem czy tak mozna zrobic ale jeste polecenie systemowe linux'a
Cytat
cp plik.php folder/sciezka

a win32 jest chyba copy ale nie wiem czy tak mozna zrobic nigdy nie probowalem


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
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: 25.06.2025 - 06:14