Uniemożliwić użytkownikom otwieranie plików za pośrednictwem adresu URL na serwerze sieci web lighttpd

1

Mam stronę internetową, która używa plików JSON do przechowywania ustawień. Te pliki znajdują się w podfolderze, tak że /settings/settings.json.

Jeśli wpisuję adres IP w sieci lokalnej w ten sposób http://192.168.1.1/settings/settings.json Jestem w stanie zobaczyć zawartość JSON. Muszę jakoś temu zapobiec i myślę, że mogę to zrobić za pomocą pliku .htaccess, ale nie jestem pewien. Nazwa domeny ( 192.168.1.1 ) jest dynamiczny i może się zmieniać od czasu do czasu, więc muszę znaleźć jakiś dynamiczny sposób zapobiegania temu.

Daniel Jørgensen
źródło

Odpowiedzi:

0

Jestem w stanie zobaczyć zawartość jsona. Muszę jakoś temu zapobiec

Jeśli używasz Apache, możesz użyć:

  • ZA .htacess plik

  • ZA Directory zablokować httpd.conf (lepsza wydajność)

Jeśli używasz Lighttpd, następnie możesz użyć:

  • ZA url.access-deny dyrektywa w lighttpd.conf

Zobacz poniżej instrukcje.


Apache - Korzystanie z a .htacess plik

Stwórz .htaccess plik w settings katalog o następującej treści:

deny from all

To uniemożliwi dostęp do dowolnego pliku w tym folderze.

Uwaga:

Powinieneś unikać używania plików .htaccess całkowicie, jeśli masz dostęp do pliku konfiguracyjnego głównego serwera httpd. Używanie plików .htaccess spowalnia działanie serwera http Apache. Każda dyrektywa, którą możesz dołączyć do pliku .htaccess, jest lepiej ustawiona w bloku Directory, ponieważ będzie miała taki sam efekt przy lepszej wydajności.

Źródło Samouczek serwera HTTP Apache: pliki .htaccess


Apache - Korzystanie z a Directory zablokować httpd.conf

Dodaj następujące elementy do swojego httpd.conf plik

<Directory "/settings">
  Require all denied
</Directory>

Lighttpd - Korzystanie z a url.access-deny dyrektywa w lighttpd.conf

The mod_access moduł służy do odmawiania dostępu do plików i   katalogi.

  1. Edytować /etc/lighttpd/lighttpd.conf plik w następujący sposób:

    vi lighttpd.conf
    
  2. Dodaj następujący kod, aby włączyć mod_access:

    server.modules += ( "mod_access" )
    
  3. Dodaj wyrażenie regularne w następujący sposób:

    # deny access to /settings
    $HTTP["url"] =~ "^/settings/" {
         url.access-deny = ("")
    }
    
  4. Zapisz i zamknij plik.

  5. Sprawdź błędy składniowe:

    lighttpd -t -f /etc/lighttpd/lighttpd.conf
    
  6. Jeśli nie ma błędów, uruchom ponownie lighttpd serwer internetowy:

    service lighttpd restart
    

Źródło Lighttpd Odmów dostępu do folderów / katalogów . Skrypt został dostosowany, aby odpowiadał wymaganiom pytania.


Dalsze czytanie

DavidPostill
źródło
Nie mogę zlokalizować żadnego pliku httpd.conf w moim systemie. Próbowałem go wyszukać find / -name httpd.conf, ale nic nie jest zwracane. Czy może mieć inną nazwę? Używam lighttpd w wariancie debiana
Daniel Jørgensen
@ DanielJørgensen Instrukcje dodane do Lighttpd. Plik to /etc/lighttpd/lighttpd.conf/, ale inna składnia niż Apache.
DavidPostill