Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]fopen z get'a a bezpieczeństwo
Forum PHP.pl > Forum > Przedszkole
dk1342
Witam, otóż zrobilem sobie licznik pobrań do mojego uploadu na plikach tekstowych, wszystko ładnie działa ale teraz wyświetlanie ilości pobrań a bezpieczeństwo mam tak:

  1. <?php
  2. $f = fopen('files/dane/'.$id.'.txt', 'r');
  3. $pobrano = fread($f, filesize('files/dane/'.$id.'.txt'));
  4. echo "<tr><td>Pobrano: </td><td>".$pobrano."</td></tr>";
  5. fclose($f);
  6. ?>


ok to działa ale wydaje mi się że to nie jest bezpieczne ponieważ zmienna $id = $_GET['id'];
czyli w linku podaje nazwe pliku plik.php?id=cos.jpg
I teraz moje pytanie czy jest to bezpieczne a jak nie to jak to moge zabezpieczyć ?
dk1342
po oglądałem trochę ale zabardzo nie wiem jak to wykorzystać hm:

  1. <?php
  2. $id = $_GET['id'];
  3. $plik = basename('files/dane/'.$id.'.txt');
  4. $f = fopen($plik, 'r');
  5. ?>


tak ?
Spawnm
zobacz 1 przykład:
  1. <?php
  2. $sciezka = "/home/httpd/html/index.php";
  3. $plik = basename($sciezka);         // $plik jest ustawiony na "index.php"
  4. $plik = basename($sciezka, ".php"); // $plik jest ustawiony na "index"
  5. ?>


a na forum było już dużo o zabezpieczaniu , poszukaj ...
dk1342
  1. <?php
  2. $sciezka = "/files/dane/".$id;
  3. $plik = basename($sciezka, ".txt");
  4. $f = fopen($plik, 'r');
  5. ?>


tak ?
erix
A nie możesz spróbować? Nie pytaj nas, tylko próbuj; oszczędzisz czas swój i nasz.
dk1342
ok to mam tak:

  1. <?php
  2. $id = $_GET['id'];
  3. $sciezka = "files/dane/".$id.".txt";
  4. $plik = basename($sciezka);
  5. $f = fopen("files/dane/".$plik, 'r');
  6. $pobrano = fread($f, filesize('files/dane/'.$plik));
  7. echo "<tr><td>Pobrano: </td><td>".$pobrano."</td></tr>";
  8. fclose($f);
  9. ?>


śmiga ale dobrze to zrobiłem ? jest zabezpieczone ? bo nie wiem, nie jestem hackerem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.