国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Generieren und speichern Sie Anti-CSRF-Token
Validieren Sie das Token bei der Einreichung von Formular
Vergessen Sie nicht Ajax -Anfragen und APIs
Bonus-Tipps: Samesit Cookies und nur HTTP-Formulare
Heim Backend-Entwicklung PHP-Tutorial Wie verhindern Sie CSRF-Angriffe (CSRF) CSRF in PHP?

Wie verhindern Sie CSRF-Angriffe (CSRF) CSRF in PHP?

Jun 28, 2025 am 02:25 AM
php csrf

Um CSRF-Angriffe in PHP zu verhindern, implementieren Sie Anti-CSRF-Token. 1) Generieren und speichern Sie sichere Token mit Random_Bytes () oder Bin2hex (Random_Bytes (32)), speichern Sie sie in $ _Session und geben Sie sie in Formularen als versteckte Eingaben ein. 2) Validieren von Token bei der Einreichung, indem Sie den Post-Token streng mit dem von Sitzungen gelegenen vergleicht; Nicht übereinstimmende Anfragen mit einem 403 -Fehler ablehnen. 3) Schützen Sie Ajax/API -Anfragen, indem Sie das Token in Header oder K?rper einbeziehen, die h?ufig aus einem Meta -Tag abgerufen werden. 4) Verwenden Sie HTMLSpecialChars (), wenn Sie Token ausgeben, um XSS -Lecks zu verhindern. 5) Regenerieren Sie Token nach kritischen Aktionen wie Anmeldung. 6) Setzen Sie Samesit = Strict/Lax für Sitzungs Cookies und vermeiden Sie es, staatliche ?nderungen zu erhalten. 7) Benutzer für sensible Aktionen erneut authentifizieren. Diese Schritte gew?hrleisten einen umfassenden CSRF -Schutz über alle Anforderungstypen bei der Aufrechterhaltung der Sicherheitsintegrit?t.

Wie verhindern Sie CSRF-Angriffe (CSRF) CSRF in PHP?

Um CSRF-Angriffe in PHP zu verhindern, müssen Sie eine solide Anti-CSRF-Strategie durchführen-haupts?chlich mit Token. Die Idee ist einfach: Jede staatlich ver?ndernde Anfrage (wie die Formulareinreichungen) sollte ein einzigartiges, unvorhersehbares Token enthalten, das nur der legitime Benutzer kennt. Ohne dieses Token sollte der Server die Anfrage nicht verarbeiten.

Hier erfahren Sie, wie man es in der Praxis tats?chlich gut macht.


Generieren und speichern Sie Anti-CSRF-Token

Jedes Mal, wenn Sie ein Formular anzeigen, das eine Aktion ausführt (z. B. Einstellungen oder Kauf t?tigen), generieren Sie ein sicheres Token und speichern Sie es an einem sicheren Ort auf der Serverseite - wie in der Sitzung.

  • Verwenden Sie random_bytes() oder bin2hex(random_bytes(32)) um ein starkes Token zu erstellen.
  • Speichern Sie es in $_SESSION damit Sie es sp?ter vergleichen k?nnen, wenn das Formular eingereicht wird.

Zum Beispiel:

 if (leer ($ _ Session ['csrf_token'])) {
    $ _Session ['csrf_token'] = bin2hex (random_bytes (50));
}

Dann in Ihrer Form:

 <Eingabe type = "Hidden" name = "csrf_token" value = "<?

Auf diese Weise enth?lt jede Formulareinreichung ein Token, das der Angreifer nicht erraten oder reproduzieren kann.


Validieren Sie das Token bei der Einreichung von Formular

Wenn das Formular eingereicht wird, prüfen Sie, ob das Token in den Postdaten dem entspricht, was in der Sitzung gespeichert ist.

  • überprüfen Sie immer auf die Anwesenheit des Tokens.
  • Vergleichen Sie es streng ( === ), um Probleme mit dem Typ-Juggling zu vermeiden.
  • Wenn es nicht übereinstimmt, lehnen Sie die Anforderung mit einem 403 -Fehler oder ?hnlichen Fehler ab.

Beispielcode:

 if (! isset ($ _ post [&#39;csrf_token&#39;]) || $ _post [&#39;csrf_token&#39;]! == $ _Session [&#39;csrf_token&#39;]) {
    http_response_code (403);
    Die (&#39;Ungültiges CSRF -Token&#39;);
}

Ein kleines, aber wichtiges Detail: Verwenden Sie immer htmlspecialchars() wenn Sie das Token in HTML ausgeben, um zu verhindern, dass XSS den Token austritt.

Vergessen Sie auch nicht, das Token nach kritischen Aktionen wie Anmeldung oder Kennwort?nderung zu drehen oder zu regenerieren.


Vergessen Sie nicht Ajax -Anfragen und APIs

Wenn Ihre Website JavaScript verwendet, um Formulare zu senden oder API -Anrufe zu t?tigen, ben?tigen diese Anfragen auch CSRF -Schutz.

  • Fügen Sie das CSRF -Token in die Header oder den K?rper der AJAX -Anfrage ein.
  • Sie k?nnen das Token in einem Meta -Tag oder Inline -Skript speichern und es von dort aus lesen, wenn Sie den Anruf t?tigen.

Legen Sie beispielsweise ein Meta -Tag in Ihrem HTML -Kopf ein:

 <meta name = "csrf-token" content = "<?

Dann in deinem JS:

 Fetch (&#39;/Update-Profil&#39;, {
    Methode: &#39;Post&#39;,
    Header: {
        &#39;X-csrf-token&#39;: document.querySelector (&#39;meta [name = "csrf-token"]&#39;). Inhalt
    },
    K?rper: Neue urlSearchparams ({Name: &#39;John Doe&#39;})
});

Suchen Sie im Backend nach dem Token im X-CSRF-Token -Header und validieren Sie es wie bei regul?ren Formen.

Eine Sache, die zu beachten ist: Wenn Sie eine einseitige App (SPA) oder eine mobile App erstellen, die mit Ihrem PHP-Backend spricht, sollten Sie sich mit gleichen Cookies und CSRF-Token zusammenstellen, um einen besseren Schutz zu erhalten.


Bonus-Tipps: Samesit Cookies und nur HTTP-Formulare

Auch bei Token k?nnen Sie zus?tzliche Schritte unternehmen, die Sie unternehmen k?nnen:

  • Setzen Sie SameSite=Strict oder Lax auf Ihrem Sitzungs-Cookie, um Cross-Origin-Anfragen zu reduzieren.
  • Stellen Sie sicher, dass Ihre Formulare bei Bedarf nur Postanfragen akzeptieren-nicht zulassen, dass die ?nderungen der Get-basierten staatlichen ?nderungen zulassen.
  • Für sensible Operationen (wie das L?schen eines Kontos) hilft die Neuauthentifizierung zu einer weiteren Ebene.

Dies sind keine Ersatz für CSRF -Token, aber sie arbeiten gut neben ihnen.


Das ist es im Grunde genommen. Der CSRF -Schutz in PHP l?uft darauf hinaus, gute Token zu erzeugen, sie ordnungsgem?? zu validieren und sicherzustellen, dass sie in allen relevanten Anforderungen enthalten sind. Es ist nicht überm??ig komplex, aber leicht durcheinander zu bringen, wenn Sie nur einen Schritt überspringen.

Das obige ist der detaillierte Inhalt vonWie verhindern Sie CSRF-Angriffe (CSRF) CSRF in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kombinieren Sie zwei einzigartige Werte für PHP -Arrays? Wie kombinieren Sie zwei einzigartige Werte für PHP -Arrays? Jul 02, 2025 pm 05:18 PM

Um zwei PHP -Arrays zusammenzuführen und eindeutige Werte zu behalten, gibt es zwei Hauptmethoden. 1. Verwenden Sie für Index -Arrays oder nur Deduplizierung Array_merge und Array_unique -Kombinationen: Zuerst merge array_merge ($ array1, $ array2) und verwenden Sie dann Array_unique (), um sie endgültig zu erhalten, um ein neues Array zu erhalten, das alle eindeutigen Werte enth?lt. 2. Verwenden Sie für assoziative Arrays und m?chten im ersten Array Schlüsselwertepaare beibehalten: $ result = $ array1 $ array2, was sicherstellt, dass die Schlüssel im ersten Array vom zweiten Array nicht überschrieben werden. Diese beiden Methoden gelten für verschiedene Szenarien, je nachdem, ob der Schlüsselname beibehalten wird oder nur der Fokus liegt

Wie benutze ich die PHP -Exit -Funktion? Wie benutze ich die PHP -Exit -Funktion? Jul 03, 2025 am 02:15 AM

exit () ist eine Funktion in PHP, mit der die Skriptausführung sofort beendet wird. Zu den gemeinsamen Verwendungen geh?ren: 1. Beenden Sie das Skript im Voraus, wenn eine Ausnahme erkannt wird, z. 2. Ausgabe Zwischenergebnisse w?hrend des Debuggens und Stoppenausführung; 3. Aufrufen von Exit () nach Umleitung in Verbindung mit Header (), um die nachfolgende Codeausführung zu verhindern; Zus?tzlich kann Exit () String -Parameter als Ausgabeinhalt oder Ganzzahlen als Statuscode akzeptieren, und sein Alias ??ist die ().

Anwendung der semantischen Struktur mit Artikel, Abschnitt und beiseite in HTML Anwendung der semantischen Struktur mit Artikel, Abschnitt und beiseite in HTML Jul 05, 2025 am 02:03 AM

Die rationale Verwendung semantischer Tags in HTML kann die Klarheit, Zug?nglichkeit und SEO -Effekte der Seitenstruktur verbessern. 1. für unabh?ngige Inhaltsbl?cke wie Blog-Beitr?ge oder Kommentare muss sie in sich geschlossen werden. 2. für klassifizierungsbezogene Inhalte, die normalerweise Titel enthalten, ist für verschiedene Module der Seite geeignet. 3.. Wird für Hilfsinformationen im Zusammenhang mit dem Hauptinhalt verwendet, nicht jedoch Kern, wie z. B. Seitenleistenempfehlungen oder Autorprofile. In der tats?chlichen Entwicklung sollten Etiketten kombiniert und andere, überm??ige Verschachtelung vermeiden, die Struktur einfach halten und die Rationalit?t der Struktur durch Entwicklerwerkzeuge überprüfen.

Wie erstelle ich ein Array in PHP? Wie erstelle ich ein Array in PHP? Jul 02, 2025 pm 05:01 PM

Es gibt zwei M?glichkeiten, ein Array in PHP zu erstellen: Verwenden Sie die Funktion array () oder verwenden Sie Klammern []. 1. Die Verwendung der Funktion array () ist eine traditionelle Art und Weise mit guter Kompatibilit?t. Definieren Sie Indexarrays wie $ fruits = Array ("Apple", "Banana", "Orange") und assoziative Arrays wie $ user = array ("name" => "John", "Age" => 25); 2. Die Verwendung [] ist eine einfachere M?glichkeit, seit Php5.4 wie $ Color zu unterstützen

Der angeforderte Betrieb erfordert H?henfenster Der angeforderte Betrieb erfordert H?henfenster Jul 04, 2025 am 02:58 AM

Wenn Sie auf die Eingabeaufforderung sto?en "Dieser Vorgang erfordert die Eskalation der Berechtigungen", müssen Sie die Administratorberechtigungen ben?tigen, um fortzufahren. Zu den L?sungen geh?ren: 1. Klicken Sie mit der rechten Maustaste auf das Programm "AS Administrator ausführen" oder setzen Sie die Verknüpfung so fest, dass immer als Administrator ausgeführt wird. 2. überprüfen Sie, ob es sich bei dem Girokonto um ein Administratorkonto handelt, falls nicht die Unterstützung von Administratoren, wenn nicht. 3.. Verwenden Sie Administratorberechtigungen, um eine Eingabeaufforderung oder eine PowerShell zu ?ffnen, um relevante Befehle auszuführen. 4. Umgehen Sie die Beschr?nkungen, indem Sie bei Bedarf Dateienbesitz oder ?nderungen der Registrierung ?ndern. Solche Vorg?nge müssen jedoch vorsichtig sein und die Risiken vollst?ndig verstehen. Best?tigen Sie die Erlaubnisidentit?t und versuchen Sie die oben genannten Methoden normalerweise l?sen.

PHP -Roh -Post -Daten PHP PHP -Roh -Post -Daten PHP Jul 02, 2025 pm 04:51 PM

Die M?glichkeit zur Verarbeitung von Roh Postdaten in PHP besteht darin, $ rawdata = file_get_contents ('php: // input') zu verwenden, die zum Empfangen von JSON-, XML- oder anderen benutzerdefinierten Formatdaten geeignet ist. 1.PHP: // Eingabe ist ein schreibgeschützter Stream, der nur in Postanforderungen gültig ist. 2. H?ufige Probleme umfassen Serverkonfiguration oder Middleware -Lese -Eingabestreams, wodurch es unm?glich ist, Daten zu erhalten. 3. Die Anwendungsszenarien umfassen das Empfangen von Front-End-Abrufanfragen, Service-Rückrufe von Drittanbietern und das Erstellen von Rastfulapis; V. 5. Gew?hnlicher HTM

Wie behandle ich Datei -Uploads sicher in PHP? Wie behandle ich Datei -Uploads sicher in PHP? Jul 08, 2025 am 02:37 AM

Um PHP -Datei -Uploads sicher zu verarbeiten, müssen Sie die Quelle und die Type und die Eingabe des Dateinamens und des Pfades überprüfen, Serverbeschr?nkungen festlegen und Mediendateien zweimal verarbeiten. 1. überprüfen Sie die Upload -Quelle, um CSRF durch Token zu verhindern, und erkennen Sie den realen MIME -Typ über die Finfo_file mithilfe der Whitelist -Steuerung. 2. Benennen Sie die Datei in eine zuf?llige Zeichenfolge um und bestimmen Sie die Erweiterung, um sie gem?? dem Erkennungstyp in einem Verzeichnis ohne Web zu speichern. 3. Die PHP -Konfiguration begrenzt die Hochladengr??e und das tempor?re Verzeichnis Nginx/Apache verbietet den Zugriff auf das Upload -Verzeichnis. 4. Die GD -Bibliothek stellt die Bilder neu, um potenzielle b?swillige Daten zu l?schen.

Wie übergeben Sie Variablen nach Wert vs. durch Referenz in PHP? Wie übergeben Sie Variablen nach Wert vs. durch Referenz in PHP? Jul 08, 2025 am 02:42 AM

Inphp, variablenArepassedByValuebyDefault, BedeutungFunctionsSignmentsRecepeacopyofthedata, whilepassingyreferenceAllowsModificationStoeTheoriginalVariable.1.Weit PassingByValue, Changestothecopydonottheoriginal, Asshown, Asshown, $ b = $ -Pectheoriginal, Asshown, $ $ -Pectheoriginal, Asshown, $ organ

See all articles