Kolejna porcja błędów programistycznych #od0dopentestera
Dzisiaj nietypowo, nie będziemy bowiem przyglądać się konkretnemu językowi #programowanie a komendzie
Czasami wymagania biznesowe sprawiają, że musimy dodać obsługę archiwów do naszego serwisu internetowego.
Mogą to być pliki
Załóżmy, że prowadzimy serwis, w którym można tworzyć galerie.
Użytkownik może wysłać kilka zdjęć na raz przesyłając do nas archiwum
Plik ten jest wypakowywany po stronie
Dzisiaj nietypowo, nie będziemy bowiem przyglądać się konkretnemu językowi #programowanie a komendzie
unzip
z #linuxCzasami wymagania biznesowe sprawiają, że musimy dodać obsługę archiwów do naszego serwisu internetowego.
Mogą to być pliki
zip
, rar
czy też tar
.Załóżmy, że prowadzimy serwis, w którym można tworzyć galerie.
Użytkownik może wysłać kilka zdjęć na raz przesyłając do nas archiwum
zip
.Plik ten jest wypakowywany po stronie
- konto usunięte
- konto usunięte
- noisy
- zaltar
- n3xo
- +25 innych
Czasami potrzebujemy umożliwić użytkownikowi pobranie plików z serwera.
Może on pobrać wszystkie pliki z konkretnego katalogu oprócz jednego - nazwanego u nas
sekret.txt
$plik = basename((string) $ _GET['plik']);
if (stristr($plik, 'sekret.txt') === false) {
echo file_get_contents ($plik);
}
Funkcja
basename
usuwa wszystkie znaki../
oraz..` z parametru plik.
Dzięki temu jesteśmy pewni, że podany przez użytkownika adres do pliku nie zawiera katalogów nadrzędnych.
@KacperSzurek: Błąd, to programowanie na Windowsie.