Heim > Artikel > Backend-Entwicklung > PHP-Datenfilterung: Verhinderung von XSS- und CSRF-Angriffen
PHP-Datenfilterung: XSS- und CSRF-Angriffe verhindern
Mit der Entwicklung des Internets ist die Netzwerksicherheit zu einem Schwerpunkt der Aufmerksamkeit der Menschen geworden. Bei der Website-Entwicklung ist es sehr wichtig, vom Benutzer übermittelte Daten zu filtern und zu überprüfen, insbesondere um XSS-Angriffe (Cross-Site-Scripting-Angriffe) und CSRF-Angriffe (Cross-Site-Request-Forgery-Angriffe) zu verhindern. In diesem Artikel wird erläutert, wie Sie mit PHP diese beiden häufigen Sicherheitslücken verhindern können, und es wird ein Beispielcode als Referenz bereitgestellt.
XSS-Angriffe beziehen sich auf böswillige Angreifer, die den Inhalt von Webseiten manipulieren, indem sie bösartige Skripte oder Codes einschleusen, um vertrauliche Benutzerinformationen zu stehlen oder Malware zu verbreiten. Um XSS-Angriffe zu verhindern, müssen wir die vom Benutzer eingegebenen Daten filtern und maskieren.
(1) Verwenden Sie die Funktion htmlspecialchars(), um HTML-Sonderzeichen zu maskieren.
$name = $_POST['name']; $filtered_name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
(2) Verwenden Sie reguläre Ausdrücke, um Benutzereingaben zu filtern.
$name = $_POST['name']; $pattern = '/^[a-zA-Z0-9]+$/'; if (preg_match($pattern, $name)) { // 用户输入合法 } else { // 用户输入不合法 }
CSRF-Angriffe beziehen sich auf Angreifer, die nicht autorisierte Vorgänge ausführen, indem sie Benutzeranfragen fälschen, z. B. Benutzerinformationen ändern, böswillige Übertragungen initiieren usw. Um CSRF-Angriffe zu verhindern, können wir die folgenden Maßnahmen ergreifen.
(1) Verwenden Sie die CSRF-Token-Überprüfung.
session_start(); $csrf_token = bin2hex(random_bytes(32)); // 生成随机的令牌 $_SESSION['csrf_token'] = $csrf_token; // 在表单中添加令牌 echo "<input type='hidden' name='csrf_token' value='{$csrf_token}'>"; // 验证令牌 if ($_POST['csrf_token'] === $_SESSION['csrf_token']) { // 令牌验证通过 } else { // 令牌验证失败 }
(2) Anfragequellen begrenzen.
if ($_SERVER['HTTP_REFERER'] !== 'http://www.example.com') { // 请求来源不合法 } else { // 请求来源合法 }
Zusammenfassend lässt sich sagen, dass das Filtern und Überprüfen der vom Benutzer übermittelten Daten ein wichtiger Schritt zur Gewährleistung der Website-Sicherheit ist. Durch das Maskieren von HTML-Sonderzeichen, die Verwendung regulärer Ausdrücke zum Filtern von Benutzereingaben, die Verwendung der CSRF-Token-Überprüfung und die Einschränkung von Anforderungsquellen können wir XSS- und CSRF-Angriffe wirksam verhindern. Sicherheit ist jedoch ein fortlaufender Prozess und wir müssen die Sicherheitsmaßnahmen ständig aktualisieren und verstärken, um die Sicherheit der Website zu verbessern.
Referenzmaterialien:
Das obige ist der detaillierte Inhalt vonPHP-Datenfilterung: Verhinderung von XSS- und CSRF-Angriffen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!