Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bezpieczny upload na serwer
johny-cage
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.05.2007

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


Mam pytanie dotyczące bezpieczeństwa uploadu na serwer. Załózmy że na serwerze mam 2 skrytpy: laduj1.php i laduj2.php
W skrypcie laduj1.php jest formularz z <input type=file> a w skrypcie laduj2.php jest

  1. <?php
  2. $plik1_tmp = $_FILES['plik1']['tmp_name'];
  3. $plik1_nazwa = $_FILES['plik1']['name'];
  4. $plik1_rozmiar = $_FILES['plik1']['size'];
  5.  
  6. move_uploaded_file($plik1_tmp, "jakiskatalog/$plik1_nazwa");
  7. ?>


Oczywiście aby wykonać taką operację katalog do którego nagrywam musi mieć prawa dostępu ustawione na 777. Nasuwa się zatem pewna wątpliwość. Czy ktoś kto w jakiś sposób się dowie że istniej na moim dysku katalog o prawach dostępu do zapisu może napisać sobie skrypt na swoim serwerze i w ten sposób za pomocą skryptu ze swojego serwera nagrywać pliki na mój serwer?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
tsharek
post
Post #2





Grupa: Zarejestrowani
Postów: 300
Pomógł: 1
Dołączył: 22.09.2003
Skąd: Czeladź

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


Cytat(johny-cage @ 4.09.2007, 08:20:11 ) *
Oczywiście aby wykonać taką operację katalog do którego nagrywam musi mieć prawa dostępu ustawione na 777. Nasuwa się zatem pewna wątpliwość. Czy ktoś kto w jakiś sposób się dowie że istniej na moim dysku katalog o prawach dostępu do zapisu może napisać sobie skrypt na swoim serwerze i w ten sposób za pomocą skryptu ze swojego serwera nagrywać pliki na mój serwer?


dokładnie tak: są generalnie dwa sposoby walki z takimi atakami:
- ukrywanie katalogu (np za pomocą htaccess) przed dostępem z zewnątrz
- filtr na uploadowane pliki (na rozszerzenie, mime type pliku, itp)


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





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.05.2007

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


Założyłem oczywiście, że osoba która chciałaby mi coś nagrać nie będzie korzystała z żadnego z moich plików ani żadnego inngego pliku znajdującego sie na moim serwerze
Cytat(tsharek @ 4.09.2007, 08:24:45 ) *
dokładnie tak: są generalnie dwa sposoby walki z takimi atakami:- ukrywanie katalogu (np za pomocą htaccess) przed dostępem z zewnątrz- filtr na uploadowane pliki (na rozszerzenie, mime type pliku, itp)
Ukrywanie? Znaczy po prostu, że potencjalny użytkownik nie wie o istnieniu katalogu jednak w przypadku zdobycia takiej wiedzy i tak może coś nagrać swojego?Druga metoda to rozbijanie nazwy pliku i sprawdzanie jego rozszerzenia? Jeśli plik nie jest plikiem o rozszerzeniu jpg to nie można nagrać, w innym wypadku tak? Jak to można zrobić? Choć to i tak liche zabezpieczenie.
Go to the top of the page
+Quote Post
devnul
post
Post #4





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


a czemu katalogowi nadajesz 777? życie Ci nie miłe? wystarczy ustawić właściciela katalogu (lub grupę) na takiego samego jak właściciel procesu serwera www. Po wrzuceniu pliku powinieneś niezwłocznie ustawić mu prawa uniemożliwiające wykonywanie pliki (bo przecierz jest to operacja zbędna)


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
johny-cage
post
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.05.2007

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


To jest jakieś światło w tunelu. Czy mógłbyś mi powiedzieć jak zmienić lub zarządzać opcją zmiany właściciela katalogu. Ewentualnie gdzie mogę o tym poczytać.
Go to the top of the page
+Quote Post
devnul
post
Post #6





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


rozumiem że system unixowy wiec szukaj o chmod, chown, chgrp (analogicznie jesli chodzi o zmiane z poziomu samego php)


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
envp
post
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

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


Jak patrze na te posty to aż mnie mieli - jedynie @devnull napisał coś sensownego. A więc tak - po pierwsze to większość serwerów nie pozwala "zaglądać do katalogów kolegów", jeśli jednak będzie tak się działo, że serwer będzie źle skonfigurowany to oczywiście na to nic jako user nie poradzisz, bo ktoś przez własny skrypt wrzuci do Ciebie do katalogu plik.php ze złośliwym kodem. Dalej warto sprawdzać mime type, a mod_rewrite ustawic tak, ze jakikolwiek plik z tego katalogu z rozszerzeniem, które dopuszacza apache do prasowania kierował na np index.php, trzecia sprawa - odnośnie złośliwego file inclusion i kodem wstrzyknietym w obrazek - wystarczy tylko przeparsowac obrazek przez gd... Pozdrawiam, kamil.
Go to the top of the page
+Quote Post
johny-cage
post
Post #8





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.05.2007

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


Czy ustawienie praw dostępu na 644 pomoże? Bo z tego co dziś doczytałem to 644 daje tylko właścicielowi prawo zapisu a reszcie odczytu.
Go to the top of the page
+Quote Post
envp
post
Post #9





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

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


Nom, jesli wlascicielem bedzie apache... mozesz dac ofc 600 i wlasciciela apache ;]
Go to the top of the page
+Quote Post
johny-cage
post
Post #10





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.05.2007

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


Czy można jakoś sprawdzić kto jest właścicielem? Ewentualnie zmienić właściciela?
Go to the top of the page
+Quote Post
devnul
post
Post #11





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


zmieniasz właściciela z poziomu shela poleceniem chown -R nowy_wlasciciel[:nowa_grupa] katalog
w ten sposób zmienisz właściciela dla katalogu i całej jego zawartości


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
johny-cage
post
Post #12





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.05.2007

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


Ponieważ jestem nowicjuszem w tym temacie proszę o bardzie precyzyjną podpowiedź jak zmienić właściciela. Mam wynajęty hosting i dostęp do niego bezpośrednio przez panel kontrolny lub total commandera. Jak można to zrobić przy użyciu tych narzędzi?

Ten post edytował johny-cage 12.09.2007, 06:08:38
Go to the top of the page
+Quote Post
erix
post
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jeśli masz taką możliwość, to trzymaj wysłane pliki poza public_html.


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

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!
Go to the top of the page
+Quote Post
templar
post
Post #14





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.09.2006
Skąd: Poland

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


Cytat(johny-cage @ 4.09.2007, 08:20:11 ) *
Mam pytanie dotyczące bezpieczeństwa uploadu na serwer. Załózmy że na serwerze mam 2 skrytpy: laduj1.php i laduj2.php
W skrypcie laduj1.php jest formularz z <input type=file> a w skrypcie laduj2.php jest

  1. <?php
  2. $plik1_tmp = $_FILES['plik1']['tmp_name'];
  3. $plik1_nazwa = $_FILES['plik1']['name'];
  4. $plik1_rozmiar = $_FILES['plik1']['size'];
  5.  
  6. move_uploaded_file($plik1_tmp, "jakiskatalog/$plik1_nazwa");
  7. ?>


Oczywiście aby wykonać taką operację katalog do którego nagrywam musi mieć prawa dostępu ustawione na 777. Nasuwa się zatem pewna wątpliwość. Czy ktoś kto w jakiś sposób się dowie że istniej na moim dysku katalog o prawach dostępu do zapisu może napisać sobie skrypt na swoim serwerze i w ten sposób za pomocą skryptu ze swojego serwera nagrywać pliki na mój serwer?


To raczej niemożliwe ;]. Nie można zdalnie połączyć się z serwerem/katalogiem i bez zalogowania coś do niego pisać.
Go to the top of the page
+Quote Post
devnul
post
Post #15





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


@templar: za przeproszeniem pier... od rzeczy. nie ma rzeczy nie możliwych, są tylko takie które zajmują więcej czasu

@johny-cage: przez panel pewnie nie masz możliwości zmiany właściciela, tego tez nie zrobisz z poziomu total commandera, pozostaje ci zwykłą zmiana ustawień uprawńnien (PPM na folderze i dalej musisz szukac - dawno już nie mialem okazji z totala kozystac). prawdopodobnie wlasciciel i reszta rzeczy są ustawione poprawnie przez Twojego usługodawcę hostingowego.


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
Go to the top of the page
+Quote Post
johny-cage
post
Post #16





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 15.05.2007

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


przy chmod 777 wszystko działa poprawnie (bo dlaczego mialoby nie działać), po zmiane na 644 już dostaje komunikat
"Warning: move_uploaded_file(pliki/listing1.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in..."

Może jest sposób sprawdzenia właściciela pliku?

Ten post edytował johny-cage 12.09.2007, 12:24:56
Go to the top of the page
+Quote Post
devnul
post
Post #17





Grupa: Zarejestrowani
Postów: 1 470
Pomógł: 75
Dołączył: 21.09.2005
Skąd: że znowu

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


fileowner" title="Zobacz w manualu PHP" target="_manual


--------------------
Profesjonaliści są przewidywalni...
strzeż się amatorów...
FL4SHB4CK - imprezy, galerie, lokale
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: 19.08.2025 - 16:09