Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]zabezpieczenie uploadu plikow
trucksweb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

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


jako, ze napotkalem wiekszy problem niz sie spodziewalem musze zaczerpnac od Was nieco wiedzy.

w swojej aplikacji, udostepnilem przesylaniem plikow na serwer - ogolnie wszystkich, w tym takze php.
Problem polega na tym, ze nie bardzo wychodzi mi zabezpieczenie serwera przed wywowalnie nowych plikow php. Ogolnie moglbym wylaczyc wywowlywanie skryptow, jednak pliki uploaduje do katalogu glownego.

Zablokowalem teraz wgrywanie i modyfikacje pliku htaccess, oraz ustawilem chmody dla nowych plikow na 0600. niestety i to nie bardzo pomaga, bo dalej moge odpalic nowy plik ze skryptem php, ktory wylistuje mi caly serwer.

Uzytkownik "pyro" w innym temacie wskazal ze mozna utworzyc nowego usera i zamknac go w tym katalogu. nie bardzo jednak widze taka mozliwosc - bo niby jak to mialboy wygladac ?


--------------------
Rozmawia dwóch dyrektorów:
- Jaki jest twój ideał sekretarki?
- 20-letnia dziewczyna z 30-letnim doświadczeniem.
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


hmmm przede wszystkim jest jedna podstawowa zasada. Pliki "podejrzane" uploadujemy z dala od katalogu głównego WWW. Sądzę, że z tym nie będziesz miał problemu.

Jak już masz pliki poza tym katalogiem to mam propozycję:

Możesz zapisać je pod zmienioną nazwą na pewno plik wgrywany ma jakieś unikalne ID - możesz zapisać go pod nazwą ID (albo md5($id)) a nazwę trzymać w bazie. Ale to nie zawsze jest dobry pomysł - chociaż ma dużo zalet.

Dalej... Jeżeli boisz się wykonywania jakichś plików, ustaw im po wgraniu odpowiednie uprawnienia - możesz wyłączyć odpalanie przecież wink.gif albo dać to na katalog w którym masz pliki.

Teraz na pewno zastanawiasz się - dobra wrzucę pliki do katalogu poza www - przecież to bzdura - jak ja je stamtąd wyciągnę :/ - musiałbym użyć PHP w stylu readfile() a to przecież duży spadek wydajności i zjadanie ramu... - zgadza się ale można to zrobić wydajnie nie wykorzystując do tego PHP'a smile.gif

  1. //We want to force a download box with the filename hello.txt
  2. header('Content-Disposition: attachment;filename=hello.txt');
  3.  
  4. //File is located at /home/username/hello.txt
  5. header('X-Sendfile: /home/username/hello.txt');


przykład pochodzi z CodeUtopia i jest dla Apache - ale dla innych serwerów też są "odpowiedniki" smile.gif

Polecam! wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
trucksweb
post
Post #3





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

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


hmm, zabawy z tym bedzie jednak.

chcialem zrobic jakas alternatywe dla ftpa, ale widze ze jednak to troche bez sensu.
-zmienie katalog docelowy - bo umozliwilem wgrywanie plikow do katalogu www, gdzie jest glowny kontroler
-dodam wylacznie akceptowanie plikow multimedialnych

no i na tym zakoncze


--------------------
Rozmawia dwóch dyrektorów:
- Jaki jest twój ideał sekretarki?
- 20-letnia dziewczyna z 30-letnim doświadczeniem.
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: 20.08.2025 - 17:21