Aktueller Standort: Startseite> Neueste Artikel> So erfassen Sie die Quelle von Sprunglinks über Parse_url

So erfassen Sie die Quelle von Sprunglinks über Parse_url

gitbox 2025-05-20

Die Sprungquelle wird normalerweise durch das Referentenfeld des HTTP -Anforderungsheaders weitergeleitet, der die Seiten -URL enthält, in der der Benutzer vor dem Zugriff auf die aktuelle Seite war. Wenn ein Benutzer beispielsweise auf einen Link von Website A zur Website B klickt, kann die Serverseite der Website B die URL der Website A über $ _server ['http_referer'] lesen.

Es ist jedoch wichtig zu beachten:

  • Der Referer sendet nicht unbedingt und einige Browser oder Plugins können es deaktivieren.

  • Referer kann gefälscht werden und kann daher nicht vollständig vertrauen.

2. Einführung in die Funktion PHP PARSE_URL

Die Parse_url -Funktion kann URLs in Komponenten wie Schema (Protokoll), Host (Domänenname), Pfad (Pfad) usw. zerlegen. Das Rückgabeergebnis ist ein assoziatives Array, das uns erleichtert, verschiedene Teile der URL zu beurteilen.

 $url = "https://gitbox.net/path/to/page?query=123";
$parsed = parse_url($url);
print_r($parsed);

Ausgabe:

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

3. Beispielcode zur Implementierung der Jump -Source -Erkennung

Das folgende Beispiel zeigt, wie PHP verwendet wird , um die Sprungquelle zu erkennen und festzustellen, ob sie aus einem angegebenen Domänennamen (z. B. Gitbox.net ) stammt:

 <?php
// Erhalten HTTP_REFERER
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';

if (empty($referer)) {
    echo "Keine Quellinformationen,Vielleicht direkten Zugriff oder Browser deaktiviert Referer。";
    exit;
}

// Analysieren Sie die Quelle URL
$parsedUrl = parse_url($referer);

// Bestimmen, ob es enthält host
if (!isset($parsedUrl['host'])) {
    echo "Quelle URL Falsches Format。";
    exit;
}

// 指定允许的Quelle域名
$allowedDomains = ['gitbox.net'];

// 判断Quelle是否在允许列表中
if (in_array($parsedUrl['host'], $allowedDomains)) {
    echo "访问Quelle于可信域名:" . htmlspecialchars($parsedUrl['host']);
    // Hier können Sie eine anschließende logische Verarbeitung durchführen,Wenn Zugriff oder Protokollierung zulässig ist
} else {
    echo "访问Quelle不可信,Quelle域名:" . htmlspecialchars($parsedUrl['host']);
    // Kann für Sprung verwendet werden、Zugang verweigert usw.
}
?>

4. Ergänzungsnotizen

  • Sicherheitsüberlegungen <br> Sie können sich nicht ausschließlich auf den Referenten für Sicherheitsurteile verlassen. Es wird empfohlen, mit anderen Mitteln zusammenzuarbeiten, wie z. B. Anmeldetätigkeit, Token -Überprüfung usw.

  • Multi-Domain-Namensunterstützung
    Das Array für das $ -erlaubtedomain kann mehrere Domain -Namen hinzufügen und mehrere vertrauenswürdige Quellen unterstützen.

  • Leistungsoptimierung
    Parse_url ist einfach zu verarbeiten, hat eine geringe Leistung und ist für hochfrequente Anrufe geeignet.

5. Zusammenfassung

Mit der Funktion PHP PARSE_URL können Sie die Quell -URL der Sprungverbindung problemlos analysieren und die Erkennung und Filterung der Sprungquelle erkennen. In Kombination mit dem Referer im HTTP -Anforderungsheader können Entwickler die Zugriffsberechtigungen und die Analyse des Benutzerverhaltens flexibler verwalten.
In tatsächlichen Projekten können Sie auch granuläre Urteile in den Quellen beruhen, die auf den Geschäftsbedürfnissen basieren, um die Sicherheit und die Benutzererfahrung der Website zu verbessern.