Case 3: setting doc root or user dir

Från Wiki.linux.se
Version från den 1 september 2024 kl. 05.59 av Admin (diskussion | bidrag) (→‎Sidslut)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Fall 3: inställning av doc_root eller user_dir

Att inkludera aktivt innehåll, som skript och exekverbara filer, i webbserverns dokumentkataloger betraktas ibland som en osäker praxis. Om, på grund av någon konfigurationsmiss, skripten inte exekveras utan visas som vanliga HTML-dokument, kan detta leda till läckage av immateriella rättigheter eller säkerhetsinformation som lösenord. Därför föredrar många systemadministratörer att sätta upp en annan katalogstruktur för skript som endast är åtkomliga genom PHP CGI, och därför alltid tolkas och inte visas som sådana.

Om metoden för att säkerställa att förfrågningarna inte omdirigeras, som beskrivs i föregående avsnitt, inte är tillgänglig, är det nödvändigt att ställa in en skript-doc_root som skiljer sig från webbens dokumentrot.

Du kan ställa in PHP-skriptets dokumentrot med konfigurationsdirektivet `doc_root` i konfigurationsfilen, eller du kan ställa in miljövariabeln `PHP_DOCUMENT_ROOT`. Om den är inställd, kommer CGI-versionen av PHP alltid att konstruera filnamnet som ska öppnas med denna `doc_root` och sökvägsinformationen i förfrågningen, så att du kan vara säker på att inget skript exekveras utanför denna katalog (förutom för `user_dir` nedan).

Ett annat alternativ som kan användas här är `user_dir`. När `user_dir` inte är inställt, är det enda som kontrollerar det öppnade filnamnet `doc_root`. Att öppna en URL som `http://min.server/~user/doc.php` resulterar inte i att en fil under användarens hemkatalog öppnas, utan en fil som heter `~user/doc.php` under `doc_root` (ja, ett katalognamn som börjar med en tilde [~]).

Om `user_dir` är inställt till exempelvis `public_php`, kommer en förfrågan som `http://min.server/~user/doc.php` att öppna en fil som heter `doc.php` under katalogen `public_php` under användarens hemkatalog. Om användarens hemkatalog är `/home/user`, exekveras filen `/home/user/public_php/doc.php`.

`user_dir`-expansionen sker oavsett `doc_root`-inställningen, så du kan kontrollera dokumentrot och användarkatalogåtkomst separat.

Sidslut

Orginalhemsidan på Engelska :https://www.php.net/manual/en/security.cgi-bin.doc-root.php
PHP

Installerad som CGI-binär
Säkerhet


Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.