Möjliga attacker: Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
(En mellanliggande sidversion av samma användare visas inte) | |||
Rad 1: | Rad 1: | ||
== Möjliga attacker | == Möjliga attacker == | ||
Att använda PHP som ett CGI-binär är ett alternativ för installationer som av någon anledning inte vill integrera PHP som en modul i serverprogramvara (som Apache), eller kommer att använda PHP med olika typer av CGI-omslag för att skapa säkra chroot- och setuid-miljöer för skript. Denna installation innebär vanligtvis att man installerar en exekverbar PHP-binär i webbserverns cgi-bin-katalog. CERT-rådgivning [https://www.cert.org/historical/advisories/CA-96.11.html CA-96.11] rekommenderar att man inte placerar några tolkare i cgi-bin. Även om PHP-binären kan användas som en fristående tolk, är PHP utformad för att förhindra de attacker som denna installation möjliggör: | Att använda PHP som ett CGI-binär är ett alternativ för installationer som av någon anledning inte vill integrera PHP som en modul i serverprogramvara (som Apache), eller kommer att använda PHP med olika typer av CGI-omslag för att skapa säkra chroot- och setuid-miljöer för skript. Denna installation innebär vanligtvis att man installerar en exekverbar PHP-binär i webbserverns cgi-bin-katalog. CERT-rådgivning [https://www.cert.org/historical/advisories/CA-96.11.html CA-96.11] rekommenderar att man inte placerar några tolkare i cgi-bin. Även om PHP-binären kan användas som en fristående tolk, är PHP utformad för att förhindra de attacker som denna installation möjliggör: | ||
* Åtkomst till systemfiler: | * Åtkomst till systemfiler: `http://my.host/cgi-bin/php?/etc/passwd` Den frågeinformationen i en URL efter frågetecknet (?) skickas som kommandoradsargument till tolken av CGI-gränssnittet. Vanligtvis öppnar och exekverar tolkar den fil som anges som det första argumentet på kommandoraden. När PHP anropas som ett CGI-binär vägrar PHP att tolka kommandoradsargumenten. | ||
* Åtkomst till valfritt webb dokument på servern: | * Åtkomst till valfritt webb dokument på servern: `http://my.host/cgi-bin/php/secret/doc.html` Den sökvägsinformationen i URL:en efter PHP-binärens namn, `/secret/doc.html`, används konventionellt för att ange namnet på filen som ska öppnas och tolkas av CGI-programmet. Vanligtvis används några webbserverkonfigurationsdirektiv (Apache: Action) för att omdirigera förfrågningar till dokument som `http://my.host/secret/script.php` till PHP-tolken. Med denna installation kontrollerar webbservern först åtkomstbehörigheterna till katalogen `/secret` och skapar därefter den omdirigerade förfrågan `http://my.host/cgi-bin/php/secret/script.php`. Tyvärr, om förfrågan ursprungligen ges i denna form, görs inga åtkomstkontroller av webbservern för filen `/secret/script.php`, utan endast för `/cgi-bin/php`-filen. På detta sätt kan alla användare som kan komma åt `/cgi-bin/php` få tillgång till vilket skyddat dokument som helst på webbservern. I PHP kan körningskonfigurationsdirektiven `cgi.force_redirect`, `doc_root` och `user_dir` användas för att förhindra denna attack, om serverns dokumentträd har några kataloger med åtkomstbegränsningar. Se nedan för en fullständig förklaring av de olika kombinationerna. | ||
= Sidslut = | = Sidslut = |
Nuvarande version från 1 september 2024 kl. 06.02
Möjliga attacker
Att använda PHP som ett CGI-binär är ett alternativ för installationer som av någon anledning inte vill integrera PHP som en modul i serverprogramvara (som Apache), eller kommer att använda PHP med olika typer av CGI-omslag för att skapa säkra chroot- och setuid-miljöer för skript. Denna installation innebär vanligtvis att man installerar en exekverbar PHP-binär i webbserverns cgi-bin-katalog. CERT-rådgivning CA-96.11 rekommenderar att man inte placerar några tolkare i cgi-bin. Även om PHP-binären kan användas som en fristående tolk, är PHP utformad för att förhindra de attacker som denna installation möjliggör:
- Åtkomst till systemfiler: `http://my.host/cgi-bin/php?/etc/passwd` Den frågeinformationen i en URL efter frågetecknet (?) skickas som kommandoradsargument till tolken av CGI-gränssnittet. Vanligtvis öppnar och exekverar tolkar den fil som anges som det första argumentet på kommandoraden. När PHP anropas som ett CGI-binär vägrar PHP att tolka kommandoradsargumenten.
- Åtkomst till valfritt webb dokument på servern: `http://my.host/cgi-bin/php/secret/doc.html` Den sökvägsinformationen i URL:en efter PHP-binärens namn, `/secret/doc.html`, används konventionellt för att ange namnet på filen som ska öppnas och tolkas av CGI-programmet. Vanligtvis används några webbserverkonfigurationsdirektiv (Apache: Action) för att omdirigera förfrågningar till dokument som `http://my.host/secret/script.php` till PHP-tolken. Med denna installation kontrollerar webbservern först åtkomstbehörigheterna till katalogen `/secret` och skapar därefter den omdirigerade förfrågan `http://my.host/cgi-bin/php/secret/script.php`. Tyvärr, om förfrågan ursprungligen ges i denna form, görs inga åtkomstkontroller av webbservern för filen `/secret/script.php`, utan endast för `/cgi-bin/php`-filen. På detta sätt kan alla användare som kan komma åt `/cgi-bin/php` få tillgång till vilket skyddat dokument som helst på webbservern. I PHP kan körningskonfigurationsdirektiven `cgi.force_redirect`, `doc_root` och `user_dir` användas för att förhindra denna attack, om serverns dokumentträd har några kataloger med åtkomstbegränsningar. Se nedan för en fullständig förklaring av de olika kombinationerna.
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/security.cgi-bin.attacks.php
PHP
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.