Und wenn Du das sehr genau und also mit dem richtigen Ergebnis bedacht und ein wenig im PHP-Handbuch gelesen hast und entsprechend gehandelt hast, dann ist $_SERVER['SERVER_NAME'] nicht mehr tainted.
Da steht nirgendwo etwas von untainted! Im Übrigen implementiert auch PHP nur einen Standard nämlich den in CGI/1.1
Dann bedenke mal den Weg der Daten:
- Der Apache bekommt mit dem Request einen Hostname.
- Der Apache vergleicht diesen übermittelten Hostname mit dem Hostnamen und Aliasnamen der vom Systenverwalter konfigurierten virtuellen Hosts.
- Nur wenn eine bytegenaue Übereinstimmung vorliegt liefert der Apache eine Webseite eines konfigurierten virtuellen Hosts aus, sonst die des Default-Hosts (also auf Grund des oben stehenden nur eine statische Fehlermeldung)
$_SERVER['SERVER_NAME']
wird, weil PHP nicht mal bemüht wird, also gar nicht erst besetzt. - Aus 2. und 3. folgt zwingend, dass ein anderer Fall gar nicht auftreten kann, weil sonst das Skript gar nicht erst aufgerufen wird.
- Aus 2, und 3. folgt zwingend, dass in
$_SERVER['SERVER_NAME']
stets genau ein vom Systemverwalter konfigurierter also gesetzter String steht. Der ist per Definition „nicht vergiftet“.
Was zu beweisen war.