Logo David Burdelak
Słownik · Cyberbezpieczeństwo

Co to jest Path Traversal?

Ostatnia aktualizacja:

Path Traversal (directory traversal) to atak, w którym napastnik manipuluje ścieżką pliku, na przykład sekwencją ../, aby odczytać pliki spoza katalogu, do którego aplikacja powinna mieć dostęp.

Jak działa Path Traversal?

Gdy aplikacja buduje ścieżkę z danych użytkownika, wpisanie ../../etc/passwd może wyprowadzić poza katalog bazowy. Skutkiem bywa wyciek plików konfiguracyjnych, haseł i kodu źródłowego.

Jak się chronić?

  • nie przekazuj nazw plików z danych wejściowych wprost do funkcji plikowych,
  • normalizuj ścieżkę i sprawdzaj, czy mieści się w katalogu bazowym,
  • używaj listy dozwolonych plików lub identyfikatorów,
  • ogranicz uprawnienia procesu serwera.

Path Traversal a wgrywanie plików

Ten sam błąd występuje przy zapisie, gdy nazwa wgranego pliku zawiera ścieżkę. Dlatego przy wgrywaniu generuj własne nazwy plików i kontroluj ich typ.

Przykład bezpiecznej obsługi pliku

Zamiast przyjmować nazwę pliku z adresu, przyjmij identyfikator i odczytaj z bazy właściwą ścieżkę. Jeśli nazwa musi pochodzić od użytkownika, zamień ścieżkę na kanoniczną funkcją systemową i sprawdź, czy zaczyna się od katalogu bazowego. Serwer WWW powinien działać na koncie z minimalnymi uprawnieniami, aby nawet udany atak nie odsłonił plików systemowych.

Podobnie jak przy zabezpieczaniu aplikacji przed SQL Injection, podstawą ochrony jest traktowanie wszystkich danych od użytkownika jako niezaufanych.

Zobacz w praktyce

Powiązane pojęcia

Wszystkie hasła z kategorii Cyberbezpieczeństwo