![]() |
![]() |
-php programmer- |
![]() ![]()
Post
#1
|
Goście ![]() |
Mam coś takiego.
<A href="plik.zip">Plik do ściągnięcia</A> Poniważ elementem docelowym nie jest strona tylko plik, więc nie moge sobie tak po prostu zrobić licznika, A chciałbym wiedzieć ile osób zapisało (zrobiło download na swój dysk) dany plik z mojego serwera. Jak to zrobić (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 29.08.2004 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
/etc/passwd ?
/cfg/config.inc ? czy to jest aby bezpieczne ? |
|
|
![]() ![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
zYm3N: Ja mu nie podałem stuprocentowego rozwiazania, tylko szkic. Zreszta dosc latwo jest zabezpieczyc ten skrypt. Wystarczy np tak:
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 29.08.2004 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
tak, ale dział to "początkujący" i należy zakładać, że kolega raczej nie interesował się zabezpieczaniem swoich skryptów :-)
if(is_file($_GET['file']) && strpos($_GET['file'], '..') != false) A jeśli nazwa wygląda: to_jest_nazwa_pliku..jpg bo uzytkownikowi się pomyliło ? :-) To nie jest najlepszy pomysł. Lepiej dać regularne. strpos($_GET['file'], '..') != false strpos strpos -- Find position of first occurrence of a string Czyli, że jeżeli w ciągu jest '..' to wynikiem będzie true, a true!=false jest prawdą, czyli że wejdzie ? hm ;-) Albo ja coś mylę, albo Ty się pomyliłeś :-) |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
Masz rację, pomyliło mi się (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Powinno oczywiście być:
Imo zdecydowanie nie ma żadnego sensu dawać regularnych. Tylko kretyn używa w nazwie swojego pliku dwóch kropek '..' - a zastartowanie silnika wyrażeń regularnych żeby pomóc kretynom, to imo zły pomysł... Ten post edytował bregovic 6.11.2004, 12:10:54 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 29.08.2004 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
a jeśli to jest część skryptu za pomocą którego można ściągać pliki dostępne na serwerze po uprzednim wysłaniu ich ? :-)
Wiesz, laski czesto mają pliki w stylu: "pamiętnik...txt" Jakoś połowicznie sprawne rozwiązania nie przekonywują mnie :-) Na miejscu autora wątku założyłbym sobie tabele w bazie danych. Nawet dwie :-) Jedna, to pliki: id -> nazwa Druga to: id_pliku -> id pierwszej + wszystkie ciekawe informacje wyświetlane przy okazji phpinfo(); Dzięki temu zrobienie w przyszłości statystyk to rzecz prosta i przyjemna :-) A to, że teraz tego nie wykorzysta.. no dobra, ale statsy pójdą :-)) pzodr. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 562 Pomógł: 15 Dołączył: 8.08.2003 Skąd: Denmark/Odense Ostrzeżenie: (0%) ![]() ![]() |
Zaraz, php programmer zapytał się, cytuje:
Cytat chciałbym wiedzieć ile osób zapisało (zrobiło download na swój dysk) dany plik z mojego serwera Nikt nie ma szansy wiedzieć czy on używa tego systemu jako coś większego, czy tylko jako standalone... Oczywiscie, jeśli to ma być część CMSa lub Frameworka, to jasne, dla każdego pliku powinien być rekord w bazie danych, i wtedy wystarczy zamiast nazwy pliku dać identyfikator... Np tak:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:18 |