Heim >Backend-Entwicklung >PHP-Tutorial >Häufige PHP-Sicherheitsprobleme und Lösungen

Häufige PHP-Sicherheitsprobleme und Lösungen

王林
王林Original
2019-11-08 17:44:421981Durchsuche

Häufige PHP-Sicherheitsprobleme und Lösungen

1. SQL-Injection ist eine der größten Bedrohungen für Ihre Website, wenn Ihre Datenbank durch das SQL-Injection einer anderen Person injiziert wird Im Falle eines Angriffs können andere Ihre Datenbank übertragen, was schwerwiegendere Folgen haben kann.

Lösung:

Es gibt zwei gängige Lösungen. Escapen Sie vom Benutzer eingegebene Daten oder verwenden Sie gekapselte Anweisungen. Die Escape-Methode besteht darin, eine Funktion zu kapseln, um die vom Benutzer übermittelten Daten zu filtern und schädliche Tags zu entfernen. Ich empfehle diese Methode jedoch nicht, da man leicht vergisst, sie überall durchzuführen.

Als nächstes werde ich vorstellen, wie man PDO zum Ausführen gekapselter Anweisungen verwendet (dasselbe gilt für mysqi):

$username = $_GET['username'];
 
$query = $pdo->prepare('SELECT * FROM users WHERE username = :username');
 
$query->execute(['username' => $username]);
 
$data = $query->fetch();

2 XSS wird auch CSS (Cross Site Script) genannt, ein Cross-Site-Scripting-Angriff. Es bezieht sich auf einen böswilligen Angreifer, der böswilligen HTML-Code in eine Webseite einfügt. Wenn ein Benutzer die Seite durchsucht, wird der im Web eingebettete HTML-Code ausgeführt, wodurch der besondere Zweck eines böswilligen Angriffs auf den Benutzer erreicht wird.

Lösung:

Vertrauen Sie entschieden keiner Eingabe des Benutzers und filtern Sie alle Sonderzeichen in der Eingabe heraus. Dadurch werden die meisten XSS-Angriffe eliminiert:

<?php
 
$searchQuery = htmlentities($searchQuery, ENT_QUOTES);

Oder Sie können die Template-Engine Twig verwenden. Allgemeine Template-Engines fügen der Ausgabe standardmäßig die Verhinderung von HTML-Entitäten hinzu.

3. Führen Sie einige Vorgänge aus.

Lösung:

Die gebräuchlichste Verteidigungsmethode besteht darin, eine mit einem CSRF-Token verschlüsselte sichere Zeichenfolge zu generieren, die im Allgemeinen als Token bezeichnet wird, und das Token in einem Cookie oder einer Sitzung zu speichern.

Jedes Mal, wenn Sie ein Formular auf einer Webseite erstellen, geben Sie das Token in das ausgeblendete Feld im Formular ein. Der Formularanforderungsserver vergleicht es dann anhand des Cookies des Benutzers oder des Tokens in der Sitzung Die Überprüfung wird erfolgreich sein.

Da der Angreifer den Inhalt des Tokens nicht kennen kann (das Token ist für jede Form zufällig), gibt es keine Möglichkeit, sich als Benutzer auszugeben.

Empfohlenes Tutorial: PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonHäufige PHP-Sicherheitsprobleme und Lösungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:PHP-LebenszyklusNächster Artikel:PHP-Lebenszyklus