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.
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:
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>
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
}
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 '<form method="post"> ';<br> echo '<input type="hidden" name="csrf_token" value="' . $token . '"> ';<br> echo '<input type="submit" value="Einreichen"> ';<br> echo '</form> ';</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>
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.