![]() |
![]() |
![]()
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
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? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 300 Pomógł: 1 Dołączył: 22.09.2003 Skąd: Czeladź Ostrzeżenie: (0%) ![]() ![]() |
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) -------------------- |
|
|
![]()
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
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.
|
|
|
![]()
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)
-------------------- |
|
|
![]()
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ć.
|
|
|
![]()
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)
-------------------- |
|
|
![]()
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.
|
|
|
![]()
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.
|
|
|
![]()
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 ;]
|
|
|
![]()
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?
|
|
|
![]()
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 -------------------- |
|
|
![]()
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 |
|
|
![]()
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! |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 13.09.2006 Skąd: Poland 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
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ć. |
|
|
![]()
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. -------------------- |
|
|
![]()
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 |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 1 470 Pomógł: 75 Dołączył: 21.09.2005 Skąd: że znowu Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:09 |