Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie Parse_url, um ein URL -Whitelist -Filtersystem zu erstellen

Verwenden Sie Parse_url, um ein URL -Whitelist -Filtersystem zu erstellen

gitbox 2025-05-21

In der Webentwicklung ist die von den Benutzern eingegebene Verarbeitung von URLs eine sehr häufige Voraussetzung. Um die Sicherheit des Systems zu gewährleisten und böswillige Links oder unsichere Sprünge zu vermeiden, ist es häufig erforderlich, ein URL Whitelist Filtering -System zu implementieren. Die von PHP bereitgestellte Parse_url -Funktion kann uns helfen, die URL -Struktur leicht zu analysieren und so verschiedene Teile der URL effektiv zu beurteilen und zu filtern.

In diesem Artikel wird vorgestellt, wie die Parse_url -Funktion von PHP in Kombination mit dem Whitelisting -Mechanismus verwendet wird, um ein einfaches und praktisches URL -Whitelist -Filtersystem zu erstellen.

1. Was ist Parse_url ?

Parse_url ist eine integrierte Funktion in PHP. Es kann eine vollständige URL in mehrere Komponenten wie Protokoll (Schema), Domänenname (Host), Port (Port), Pfad (Pfad), Abfrageparameter (Abfrage) usw. zerlegen und ein assoziatives Array zurückgeben.

Beispielcode:

 $url = "https://gitbox.net/path/to/resource?query=123";

$parts = parse_url($url);
print_r($parts);

Ausgangsergebnis:

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /path/to/resource
    [query] => query=123
)

2. Die Kernidee der Implementierung der URL -Whitelist -Filterung

Das Ziel des Whitelist -Filtersystems ist es, den Zugriff nur zuzulassen, wenn der eingegebene URL -Domänenname zur Whitelist -Liste gehört, andernfalls wird der Zugriff verweigert.

Hauptschritte:

  1. Verwenden Sie Parse_url , um die vom Benutzer eingegebene URL zu analysieren.

  2. Bekommt den Host -Teil der URL.

  3. Überprüft, ob sich der Host in einem vordefinierten Whitelist -Array befindet.

  4. Kehren Sie zurück, um auf der Grundlage des Urteilsergebnisses zuzulassen oder abzulehnen.

3. Code Beispiel: PHP implementiert URL Whitelist Filterung

Hier ist ein vollständiger Beispielcode, der zeigt, wie die URL -Whitelist -Filterung mit Parse_url implementiert wird:

 <?php
function isUrlAllowed(string $url, array $whitelist): bool {
    // Analyse URL
    $parts = parse_url($url);
    
    if (!$parts || !isset($parts['host'])) {
        // URL Ungültig oder keine host,Zugriff verweigert
        return false;
    }
    
    $host = strtolower($parts['host']);
    
    // prüfen host Ist es auf der Whitelist?
    foreach ($whitelist as $allowedHost) {
        $allowedHost = strtolower($allowedHost);
        
        // Unterstützen Sie Subdomain -Matching,Zum Beispiel zulassen gitbox.net Auch bestanden sub.gitbox.net
        if ($host === $allowedHost || (substr($host, -strlen('.'.$allowedHost)) === '.'.$allowedHost)) {
            return true;
        }
    }
    
    return false;
}

// Definieren Sie die Domainnamen der Whitelist
$whitelist = [
    "gitbox.net",
    "api.gitbox.net",
    "cdn.gitbox.net"
];

// prüfen URL
$testUrls = [
    "https://gitbox.net/index.php",
    "http://sub.gitbox.net/page",
    "https://malicious.com/attack",
    "https://api.gitbox.net/data",
    "ftp://cdn.gitbox.net/resource"
];

foreach ($testUrls as $url) {
    if (isUrlAllowed($url, $whitelist)) {
        echo "Zugriff zulassen:$url\n";
    } else {
        echo "Zugriff verweigert:$url\n";
    }
}

Code Beschreibung:

  • Die Funktion isurlallowed wird verwendet, um festzustellen, ob sich die Eingangs -URL innerhalb des Whitelist -Bereichs befindet.

  • Verwenden Sie Parse_url , um den Host -Teil der URL zu erhalten.

  • Übereinstimmende Domain -Namen im Whitelisten übertreffen, indem sie Subdomain -Matching ( z .

  • Gibt einen Booleschen Wert zurück, um anzugeben, ob der Zugriff zulässig ist.

4. Weitere Optimierungsvorschläge

  • Protokollbeschränkungen : Sie können zulässige Protokolle wie HTTP und HTTPS einschränken, um FTP oder andere unsichere Protokolle zu vermeiden.

  • Pfadfilterung : Nachdem die Whitelist -Überprüfung bestanden wurde, werden die Pfad- und Abfrageparameter weiter gefiltert, um potenzielle Pfad -Traversal -Angriffe zu vermeiden.

  • Protokollierung : Protokolle werden für abgelehnte Anforderungen aufgezeichnet, die die Prüfung und Fehlerbehebung von Sicherheitsvorfällen erleichtern.

  • Cache Whitelist : Wenn der Whitelist groß oder häufig abgefragt ist, können die Ergebnisse zwischengespeichert werden, um die Leistung zu verbessern.

5. Zusammenfassung

Die Verwendung von PHPs Parse_url -Funktion, um die URL- und anschließende Whitelist -Filterung anhand des Domänennamens zu analysieren, ist eine effektive Möglichkeit zur Implementierung einer sicheren URL -Steuerung. Der in diesem Artikel angegebene Beispielcode ist einfach und intuitiv und geeignet, um ein Whitelist -Filtersystem schnell zu erstellen, und ist auch für die Expansion und Optimierung entsprechend den tatsächlichen Bedürfnissen geeignet.

Solange der Whitelist korrekt konfiguriert ist und die Methode vernünftig angewendet wird, kann das Risiko, dass Anwendungen von böswilligen URLs angegriffen werden, stark reduziert und die Systemsicherheit verbessert werden.