Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung der Strategie und Implementierungsmethode für CSRF -Angriffsangriffe

Detaillierte Erläuterung der Strategie und Implementierungsmethode für CSRF -Angriffsangriffe

M66 2025-06-21

CSRF -Angriffsverteidigungsstrategie und Implementierungsmethode

Mit der kontinuierlichen Entwicklung der Netzwerktechnologie haben auch die Netzwerksicherheitsrisiken zugenommen. CSRF-Angriffe (Cross-Site Request Forgery (CSRF) sind zu einer der Hauptbedrohungen für aktuelle Internetanwendungen geworden. In diesem Artikel werden die Grundprinzipien von CSRF -Angriffen sowie häufig verwendete Verteidigungsmethoden eingeführt und seine Implementierungsmethoden weiter erläutert und relevante Code -Beispiele beibringen.

CSRF -Angriffsprinzip

CSRF -Angriffe verwenden die authentifizierte Sitzung des Benutzers, um böswillige Operationen auszuführen. Der Angreifer veranlasst den Benutzer, auf böswillige Links zu klicken oder bösartige Websites zu besuchen, wodurch er gefälschte Anfragen ohne das Wissen des Opfers gesendet wird. Wenn sich der Benutzer auf einer vertrauenswürdigen Website erfolgreich anmeldet und sich authentifiziert, trägt der Browser die entsprechenden Identitätsanmeldeinformationen beim Senden der Anfrage automatisch, was dazu führt, dass der Angreifer den Benutzer ausgeben kann, um die Anfrage zu senden und böswillige Vorgänge auszuführen.

Verteidigungsstrategie

(1) Homologe Erkennung

Die Erkennung der Homologie ist eine der häufigsten Methoden, um gegen CSRF -Angriffe zu verteidigen. Es bewertet die Legitimität der Anfrage, indem es verglichen wird, ob die Quelle und die Zieladresse der Anfrage zum gleichen Domain -Namen gehören. Die Überprüfung erfolgt auf der Serverseite, und wenn der Quelldomänenname und der Zieldomänenname inkonsistent sind, wird die Anforderung abgelehnt.

Beispielcode:

@RequestMapping ("/Transfer")
public String TransferMoney (HttpServletRequest -Anfrage) {{
    String Origin = Request.Getheader ("Referer");
    String target = request.getSerVername ();
    if (! Origin.equals (Ziel)) {
        zurück "illegale Anfrage";
    }
    // Geschäftslogikverarbeitung ...
    Rückgabe "Übertragung erfolgreich";
}

(2) CSRF -Token hinzufügen

Das Hinzufügen von CSRF -Token ist auch eine der häufig verwendeten Verteidigungsmethoden. Wenn der Server die HTML -Seite zurückgibt, generiert er ein eindeutiges Token und setzt sie in das Formular ein oder sendet es als Cookie an den Client. Senden Sie beim Senden des Formulars das Token an die Serverseite. Der Server überprüft, ob das Token übereinstimmt, und wenn es nicht übereinstimmt, wird die Anfrage abgelehnt.

Beispielcode:

@RequestMapping ("/Transfer")
public String TransferMoney (HttpServletRequest -Anfrage, @RequestParam ("csrftoken") String csrftoken) {
    HttpSession Session = Request.GetSession ();
    String StoredToken = (String) Session.getAttribute ("csrftoken");
    if (! csrftoken.equals (storateToken)) {
        zurück "Invaly Token" zurückgeben;
    }
    // Geschäftslogikverarbeitung ...
    Rückgabe "Übertragung erfolgreich";
}

(3) Synchrone Anfrage und asynchrone Anfrage

Asynchrone Anfragen verwenden Technologien wie AJAX, um Anforderungen an den Server zu senden, ohne die Seite zu aktualisieren, was es schwierig macht, CSRF -Angriffe zu stoppen. Für Anfragen, die sensible Operationen betreffen, verwenden Sie daher am besten synchrone Anforderungen, um eine zuverlässigere Sitzung mit dem Server festzulegen.

Implementierungsmethode

(1) Überprüfen Sie die Quelle der Anforderung und fügen Sie homologe Erkennung hinzu

Im Backend -Service wird durch Erhalten des Referentenfelds des Anforderungsheaders festgestellt, ob die Anfrage aufgrund der Hintergrundlogik legal ist. Wenn die Anforderungsquelle mit dem Ziel nicht übereinstimmt, wird die Anforderung abgelehnt.

Beispielcode:

@RequestMapping ("/Transfer")
public String TransferMoney (HttpServletRequest -Anfrage) {{
    String Origin = Request.Getheader ("Referer");
    String target = request.getSerVername ();
    if (! Origin.equals (Ziel)) {
        zurück "illegale Anfrage";
    }
    // Geschäftslogikverarbeitung ...
    Rückgabe "Übertragung erfolgreich";
}

(2) CSRF -Token hinzufügen

Beim Senden von HTML -Seiten an das vordere Ende wird eine eindeutige Token erzeugt und in das Formular eingebettet oder als Cookie an den Client gesendet. Wenn das Front-End die Anfrage einreicht, sendet es das Token an den Server. Der Server prüft, ob das Token die Legitimität der Anfrage übereinstimmt und beurteilt.

Beispielcode:

@RequestMapping ("/Transfer")
public String TransferMoney (HttpServletRequest -Anfrage, @RequestParam ("csrftoken") String csrftoken) {
    HttpSession Session = Request.GetSession ();
    String StoredToken = (String) Session.getAttribute ("csrftoken");
    if (! csrftoken.equals (storateToken)) {
        zurück "Invaly Token" zurückgeben;
    }
    // Geschäftslogikverarbeitung ...
    Rückgabe "Übertragung erfolgreich";
}

Zusammenfassen

CSRF -Angriffe sind eine häufige und schädliche Art des Angriffs, aber einige wirksame Verteidigungsstrategien können die Sicherheit Ihrer Anwendung verbessern. In diesem Artikel wird zwei häufig verwendete Verteidigungsmethoden vorgestellt, die homologe Erkennung und das Hinzufügen von CSRF -Token, und bietet auch einen Beispielcode für die Implementierungsmethode. Bei der Entwicklung von Anwendungen sollten wir geeignete Verteidigungsrichtlinien basierend auf bestimmten Umständen auswählen und korrekt implementieren, um die Sicherheit von Benutzerdaten sicherzustellen.