Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ukrywanie adresu zrodlowego sciaganego pliku
hamlecik
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 31.07.2003

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


Witam!

Mam taki problem. Nie wiem jak zrobic aby przy sciaganiu pliku nie pokazywalo jego adresu zrodlowego. Wymyslilem sobie to tak:

plik 1.php

[php:1:3774551ec3]<?php
// kod

session_start();

$adres = adres_do_pliku
$_SESSION['status'] = $adres;

?>

<iframe src="2.php" width="400" height="200" frameborder="0">
</iframe>

<?php

// kod
?>[/php:1:3774551ec3]


plik2.php

[php:1:3774551ec3]<?php
// kod

session_start();

if($_SESSION['status']) {


?>

<META HTTP-EQUIV="refresh" content="5; URL=<?php echo $_SESSION['status']; ?>">

<?
} else {

echo "blad";

}

// kod
?>[/php:1:3774551ec3]

Kod moze miec bledy bo wklejam go na szybkiego poniewaz sie spiesze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Do powyzszego kodu trzeba jeszcze dodac javascript aby blokowal wyswietlanie adresu na pasku stanu.
Szukam jednak jakiegos bardziej profesjonalnego sposobu. Moze ma ktos jakis pomysl?

Pozdrawiam
Go to the top of the page
+Quote Post
FiDO
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Mozesz zrobic cos takiego:

dl.php
[php:1:f17ad595c1]
<?php

$file = './files/'.$fname;

header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".basename($file));
header("Connection: Close");

readfile($file);
?>[/php:1:f17ad595c1]

Do tego pliku podajesz jako parametr np. nazwe pliku albo lepiej jakis numer ID, przetwarzasz to, i wysylasz do przegladarki (w sposob podany wyzej) wlasciwy plik.
Go to the top of the page
+Quote Post
GeoS
post
Post #3





Grupa: Zarejestrowani
Postów: 602
Pomógł: 0
Dołączył: --
Skąd: W - WA -> GRO

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


Wypadaloby podniesc odrobine bezpieczenstwo:

[php:1:e39a70c5d2]<?php
// tutaj moja sugestia podnoszaca bezpieczenstwo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
$file = './files/'.basename($fname);

header("Cache-control: private");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Content-Disposition: attachment; filename=".basename($file));
header("Connection: Close");

readfile($file);
?>[/php:1:e39a70c5d2]
Go to the top of the page
+Quote Post
halfik
post
Post #4





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 17.05.2003
Skąd: Nysa

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


A jeśli masz taką możliwość pliki możesz trzymać na bazie, zatem bez pośrednictwa skryptu nikt ich nie pobierze.
Go to the top of the page
+Quote Post
hamlecik
post
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 31.07.2003

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


Dzieki za pomoc. Wszystko dziala tak jak chce.
Go to the top of the page
+Quote Post
FiDO
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Cytat
Wypadaloby podniesc odrobine bezpieczenstwo:

To byl kawalek (nawet nie polowa) z skryptu ktory uzywam, wkleilem tylko to, bo chodzilo mi zeby pokazac jak przeslac plik (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ta gorna wieksza polowa (a jednak troche wiecej bo jakies 5/6 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ) to zabezpieczenia (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
GeoS
post
Post #7





Grupa: Zarejestrowani
Postów: 602
Pomógł: 0
Dołączył: --
Skąd: W - WA -> GRO

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


U siebie mam podobnie - przeslanie naglowkow stanowi cala 1/5 skryptu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
hamlecik
post
Post #8





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 31.07.2003

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


Pojawil mi sie nowy problem. Jesli plik do sciagniecia (np plik.zip) mam w innym katalogu niz plik php do jego sciagniecia (np sciagnij.php) to nie moge sciagnac plik.zip.

Np:
plik do sciagniecia: http://localhost/plik.zip
plik php: http://localhost/php/sciagnij.php

Problem pojawia sie nawet po usunieciu funkcji basename().
Jakies sugestie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
voytar
post
Post #9





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 1.02.2004
Skąd: Gliwice

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


Może użyj jako ścieżki do pliku: ../plik.zip

(nie jestem pewien czy zrozumialem Twoj problem]
Go to the top of the page
+Quote Post
FiDO
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


hamlecik: pokaz kod, wrozkami nie jestesmy.
Zreszta podalem Ci wyzej przyklad wlasnie z inna sciezka do plikow (glebiej niz skrypt) i tamto dziala.
Trzecia sprawa.. co znaczy nie moge sciagnac? znowu mamy sie domyslac co jest nie tak? Podal jakis blad czy cokolwiek to odrazu bedzie latwiej Ci pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:37