Heim > Backend-Entwicklung > PHP-Tutorial > So überprüfen Sie Benutzereingaben in PHP-Formularen und verbessern die Sicherheit

So überprüfen Sie Benutzereingaben in PHP-Formularen und verbessern die Sicherheit

WBOY
Freigeben: 2023-06-24 09:36:01
Original
1284 Leute haben es durchsucht

Mit der Popularität des Internets erfordern immer mehr Websites von Benutzern die Anmeldung, Registrierung, Abfrage und andere Vorgänge, was die Verwendung von PHP-Formularen erfordert. Bei der Verwendung von PHP-Formularen müssen jedoch Sicherheitsaspekte berücksichtigt werden. Um die Sicherheit der Website zu verbessern, müssen wir die vom Benutzer eingegebenen Inhalte überprüfen. In diesem Artikel erfahren Sie, wie Sie Benutzereingaben in PHP-Formularen überprüfen, um die Website-Sicherheit zu verbessern.

1. Benutzereingabedaten filtern

Der erste Schritt besteht darin, Benutzereingabedaten zu filtern. Benutzereingabedaten enthalten viele unnötige Zeichen wie Leerzeichen, Tabulatoren, Wagenrückläufe, Zeilenvorschübe usw. Diese Zeichen können dazu führen, dass die Ausführung des PHP-Skripts fehlschlägt oder von Angreifern ausgenutzt wird. Daher müssen wir Funktionen in PHP verwenden, um diese Zeichen zu filtern.

Die Funktion „strip_tags()“ in PHP kann HTML- und PHP-Tags herausfiltern und die gefilterte Zeichenfolge zurückgeben. Zum Beispiel:

$username = strip_tags($_POST['username']); // 过滤掉HTML和PHP标签
Nach dem Login kopieren

Die Funktion trim() in PHP kann überschüssige Leerzeichen, Tabulatoren, Wagenrückläufe und Zeilenvorschübe an beiden Enden einer Zeichenfolge herausfiltern. Zum Beispiel:

$username = trim($_POST['username']); // 过滤掉两端空格、制表符、回车和换行符
Nach dem Login kopieren

2. Überprüfen Sie die Benutzereingabedaten. Der zweite Schritt besteht darin, die Benutzereingabedaten zu überprüfen. Wir können reguläre Ausdrücke in PHP verwenden, um vom Benutzer eingegebene Daten zu überprüfen. Regulärer Ausdruck ist ein Ausdruck, der zum Abgleichen von Zeichenfolgen verwendet wird und zur Überprüfung verwendet werden kann, ob die vom Benutzer eingegebenen Daten den Anforderungen entsprechen.

Mobiltelefonnummer bestätigen:

$phone = $_POST['phone'];
if(!preg_match('/^1[3|4|5|7|8][0-9]{9}$/', $phone)){ // 使用正则表达式进行校验
    echo '手机号码格式不正确';
}
Nach dem Login kopieren

E-Mail-Adresse bestätigen:

$email = $_POST['email'];
if(!preg_match('/^[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z]+$/', $email)){ // 使用正则表达式进行校验
    echo '邮箱格式不正确';
}
Nach dem Login kopieren

3. SQL-Injection-Angriffe verhindern

Der dritte Schritt besteht darin, SQL-Injection-Angriffe zu verhindern. SQL-Injection-Angriffe sind eine häufige Angriffsmethode. Angreifer können die Datenbank beschädigen oder sogar Daten stehlen, indem sie Schadcode in SQL-Anweisungen einschleusen. Daher müssen wir in PHP-Formularen einige Funktionen verwenden, um die vom Benutzer eingegebenen Daten zu filtern.

Die Funktion mysqli_real_escape_string() in PHP kann Sonderzeichen wie einfache Anführungszeichen, doppelte Anführungszeichen, Backslashes usw. in der vom Benutzer eingegebenen Zeichenfolge maskieren, um SQL-Injection-Angriffe zu vermeiden. Zum Beispiel:

$username = mysqli_real_escape_string($conn, $_POST['username']); // 过滤掉单引号、双引号、反斜线等特殊字符
Nach dem Login kopieren

4. Verifizierungscode verwenden

Um böswillige Angriffe zu verhindern, können wir schließlich Verifizierungscodes verwenden. Der Verifizierungscode ist eine Mensch-Maschine-Identifikationstechnologie, die verhindern kann, dass Roboter oder Schadprogramme die Website böswillig angreifen. Wir können dem PHP-Formular eine Bestätigungscode-Funktion hinzufügen, um Benutzereingaben zu überprüfen.

PHP-Bestätigungscode-Generierungsfunktion:

$code = '';
for($i = 0; $i < 4; $i++){
    $code .= rand(0, 9); // 生成四位随机验证码
}
$img = imagecreatetruecolor(80, 30); // 创建图片
$bg_color = imagecolorallocate($img, 255, 255, 255); // 设置背景颜色
$font_color = imagecolorallocate($img, 0, 0, 0); // 设置字体颜色
imagefill($img, 0, 0, $bg_color); // 填充背景颜色
imagettftext($img, 18, 0, 10, 20, $font_color, 'arial.ttf', $code); // 添加文本
header('Content-Type:image/png'); // 设置图像类型
imagepng($img); // 输出图像
imagedestroy($img); // 销毁图片
Nach dem Login kopieren

PHP-Bestätigungscode-Verifizierung:

$code = $_POST['code'];
if($code != $_SESSION['code']){ // 判断验证码是否匹配
    echo '验证码不正确';
}
Nach dem Login kopieren

Zusammenfassung:

Durch Filtern von Benutzereingabedaten, Überprüfen von Benutzereingabedaten, Verhindern von SQL-Injection-Angriffen, Verwenden von Bestätigungscodes und anderen Maßnahmen können Sie PHP konvertieren Formen in Die Sicherheit im System wurde auf ein relativ hohes Niveau verbessert. Bei der Verwendung von PHP-Formularen müssen wir auf Sicherheitsaspekte achten und Website-Programme rechtzeitig aktualisieren, um Hackerangriffe zu verhindern.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie Benutzereingaben in PHP-Formularen und verbessern die Sicherheit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage