Aktueller Standort: Startseite> Neueste Artikel> PHP Session Cross-Domain-Angriffsschutzfähigkeiten: Kekseinstellungen, Quellüberprüfung und Token-Mechanismus

PHP Session Cross-Domain-Angriffsschutzfähigkeiten: Kekseinstellungen, Quellüberprüfung und Token-Mechanismus

M66 2025-06-22

Messungen der PHP-Sitzungsprävention für Cross-Domänen-Angriffe

In Webanwendungen sind Sitzungen ein wichtiges Mittel, um den Benutzerstatus zu verfolgen und Informationen zu speichern. Aufgrund der Offenheit der Webumgebung sind Sitzungsdaten jedoch anfällig für Cross-Domänen-Angriffe. Dieser Artikel wird gemeinsame und praktische Schutztechniken in PHP ausgeben und spezifische Code -Beispiele enthalten.

1. Setzen Sie Cookie -Sicherheitseigenschaften

Die Sitzungs -ID wird normalerweise in Cookies gespeichert. Um Cross-Domänen-Angriffe zu verhindern, kann die Sicherheit durch Anpassen von Cookie-Attributen verbessert werden. Hauptsächlich involviert:

  • Httponly : Blockiert JavaScript vom Zugriff auf Cookies und vermeidet, Sitzungs -IDs durch Skripte zu stehlen.
  • Sicher : Senden Sie nur Kekse auf HTTPS-Verbindungen, um MAN-in-the-Middle-Angriffe zu verhindern.

Beispielcode:

Session_Start ();
<p>// Holen Sie sich den aktuellen Cookie -Parameter<br>
$ cookieparams = session_get_cookie_params ();</p>
<p>// Safe Cookie -Attribute festlegen<br>
Session_set_cookie_params (<br>
$ cookieparams ["lebenslang"],<br>
$ cookieparams ["Path"],<br>
$ cookieparams ["Domain"],<br>
Richtig, // sicher<br>
Richtig // httponly<br>
);</p>
<p>$ _Session ["Benutzername"] = "user123";</p>
<p>Session_write_close ();<br>

2. Überprüfen Sie den Namen der Anforderungsquellendomänen

Stellen Sie sicher, dass der Sitzungsvorgang nur unter dem autorisierten Domänennamen auftritt, wodurch das Risiko von Cross-Domänen-Angriffen verringert wird. Es kann mit $ _server ['http_referer'] implementiert werden:

 if (isset($urlParts['host']) && $urlParts['host'] === $allowedDomain) {
    return true;
} else {
    return false;
}

}

// Beispiel verwenden
if (validateReferer ("example.com")) {
// Sessionsbezogene Operationen durchführen
} anders {
// illegale Quelle, Zugriff verweigert oder Fehler aufgenommen
}

3.. Erzeugen und überprüfen Sie Token, um CSRF zu verhindern

Generieren Sie für jede Sitzung eine eindeutige Token, tragen Sie sie, wenn der Client die Konsistenz des Tokens auf der Serverseite beantragt, um Fälschungsanforderungen zu verhindern:

// Token generieren
Funktion Generatetoken () {
    $ token = bin2hex (random_bytes (32));
    $ _Session ["csrf_token"] = $ token;
    kehren $ token zurück;
}
<p>// Token überprüfen<br>
Funktion validateteoken ($ token) {<br>
return isset ($ _ session ["csrf_token"]) && $ _Session ["csrf_token"] === $ token;<br>
}</p>
<p>// Token generieren und sie zur Form ausgeben<br>
$ token = GeneratEToken ();</p>
<p>echo &#39;<form method="post"> &#39;;<br>
echo &#39;<input type="hidden" name="csrf_token" value="' . $token . '"> &#39;;<br>
echo &#39;<input type="submit" value="Einreichen"> &#39;;<br>
echo &#39;</form> &#39;;</p>
<p>// Überprüfen Sie bei der Anfrageverarbeitung<br>
if (isset ($ _ post ["csrf_token"]) && validatEtoken ($ _ post ["csrf_token"])) {<br>
// Token ist gültig, führen Vorgänge aus<br>
} anders {<br>
// Token ist ungültig, der Betrieb wird abgelehnt<br>
}<br>

Zusammenfassen

Durch die vernünftige Einstellung von Cookie-Attributen, die Überprüfung der Anforderungsquellendomäne und die Übernahme des Token-Mechanismus können Sie die Cross-Domänen-Angriffsrisiken der PHP-Sitzung effektiv schützen. Es wird empfohlen, bestimmte Geschäftsszenarien in der tatsächlichen Entwicklung zu kombinieren, weiterhin auf Sicherheitslücken zu achten und Richtlinien rechtzeitig zu aktualisieren, um Benutzerdaten und Datenschutzsicherheit zu gewährleisten.