Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jakie headers by przeglądarka ściągała?, Jakie headers wysłać by przeglądarka sugerowała download pliku
konrados
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Witam,

W jednym z moich skryptów umożliwiam userom upload plików (jako załączniki do wiadomości). Ze względów bezpieczeństwa, na początku myślałem by zabronić im uploadowania plików typu .php, .js, .htm ale tak sobie myślę - może da się inaczej? Może niech mogą wrzucać pliki dowolnego rodzaju, a ja po stronie serwera zrobię tak by zawsze po ich kliknięciu włączało się "Ściągnij plik..." zamiast uruchamiania go?

To chyba da się zrobić za pomocą odpowiednich headers?

sczegóły:
pliki są przechowywane w katalogu "attachments". Listowanie jest wyłączone. Muszę zrobić co następuje:
1. gdy user wpisze w pasku adresu przeglądarki "attachments/jakis_plik.php" to mu się błąd wywali.
2. stworzyć plik np. "getfile.php" który bierze za parametr nazwę pliku i NIE wykonuje go nawet jak php, zamiast tego-każe przeglądarce go ściągnąć, jest więc "getfile.php?name=jakis_plik.php" i wysłanie odpowiednich headerów.

Da się tak? I czy to jest bezpieczne?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
sniezny_wilk
post
Post #2





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Abstrahując już od samego czy da się czy nie (bo da się smile.gif) to pozwalanie na wgranie pliku php to już jest zły pomysł sam w sobie. Zobacz, ktoś wgrywa plik usuwający wszystkie dane z katalogu, katalogów wyżej itp, wcześniej wrzuca prawidłowy plik i patrzy skąd leci plik - pobiera adres, odpala swój skrypt przez wpisanie adresu i cieszy się swoim sukcesem smile.gif


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





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


No tak... myślałem jednak, że za pomocą .htaccess mógłbym zabronić jakoś bezpośredniego dostępu do plików w katalogu "attachments". Ale dobra, zabronię userom uploadowania plików php - ale dalsze pytania są wciąż aktualne. Bo chciałbym jednak umożliwić jakoś upload plików typu .htm czy .js czy .txt - i teraz jakie headers mam wysłać by przeglądarka sugerowała ściągnięcie zamiast otwierania ich ?
Go to the top of the page
+Quote Post
pest
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 15
Dołączył: 10.12.2007
Skąd: Lublin

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


Tak jak robi to google w mailach.

Instrukcja jest w opisie samej funkcji header" title="Zobacz w manualu PHP" target="_manual.

Dokładniej spróbuj pokombinować z tym:
  1. <?php
  2. // It will be called downloaded.pdf
  3. header('Content-Disposition: attachment; filename="downloaded.pdf"');
  4. ?>


Co do plików php... możesz im zmieniać rozszerzenia, albo zorientować się czy przez .htaccess możesz wyłączyć obsługę interpretera dla tego katalogu.
Go to the top of the page
+Quote Post
konrados
post
Post #5





Grupa: Zarejestrowani
Postów: 623
Pomógł: 79
Dołączył: 16.01.2008

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


Dzięki Wam!
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 - 19:12