Mit der Entwicklung des Internets hat die Sicherheit von Websites immer mehr Aufmerksamkeit erhalten. Unter anderem werden Bildverifizierungscodes häufig bei der Benutzerregistrierung, Anmeldung und anderen Szenarien verwendet, um automatisierte Vorgänge durch böswillige Roboter zu verhindern. In diesem Artikel wird erläutert, wie Sie mit PHP eine einfache Codefunktion zur Bildüberprüfung entwickeln und implementieren.
1. Was ist ein Bildverifizierungscode?
Der Bildverifizierungscode ist eine bildbasierte Sicherheitsauthentifizierungsmethode. In einem Bild wird eine zufällige Zeichenfolge angezeigt, die der Benutzer korrekt identifizieren und in die Eingabe eingeben muss Kasten . Nur wenn der Benutzer den richtigen Verifizierungscode eingibt, können nachfolgende Vorgänge fortgesetzt werden, wodurch automatisierte Angriffe und Missbrauch durch böswillige Roboter wirksam verhindert werden.
2. Vorbereitung der Entwicklungsumgebung
Bevor wir mit der Entwicklung beginnen, müssen wir eine PHP-Entwicklungsumgebung vorbereiten. Sie können eine PHP-Laufumgebung lokal erstellen oder einige integrierte Entwicklungsumgebungen (IDE) wie XAMPP, WAMP usw. verwenden.
3. Verifizierungscode-Bild generieren
Zuerst müssen wir ein Verifizierungscode-Bild generieren, das eine zufällige Zeichenfolge enthält. PHP stellt die GD-Bibliothek zur Verfügung, mit der Bilder generiert und bearbeitet werden können.
Das Folgende ist ein einfaches Funktionsbeispiel zum Generieren eines Verifizierungscode-Bildes:
function generateCaptcha($length = 4, $width = 100, $height = 40) { $code = ''; $charset = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charset_length = strlen($charset); // 生成随机字符串 for ($i = 0; $i < $length; $i++) { $code .= $charset[random_int(0, $charset_length - 1)]; } // 创建画布 $image = imagecreatetruecolor($width, $height); // 设置背景色和文本颜色 $bg_color = imagecolorallocate($image, 255, 255, 255); $text_color = imagecolorallocate($image, 0, 0, 0); // 填充背景色 imagefill($image, 0, 0, $bg_color); // 写入验证码文本 $font_size = 20; $x = ($width - $font_size * $length) / 2; $y = ($height + $font_size) / 2; for ($i = 0; $i < $length; $i++) { $angle = random_int(-30, 30); imagettftext($image, $font_size, $angle, $x, $y, $text_color, 'path/to/font.ttf', $code[$i]); $x += $font_size; } // 添加干扰线 for ($i = 0; $i < 5; $i++) { $line_color = imagecolorallocate($image, random_int(0, 255), random_int(0, 255), random_int(0, 255)); imageline($image, random_int(0, $width), random_int(0, $height), random_int(0, $width), random_int(0, $height), $line_color); } // 输出图像 header('Content-Type: image/png'); imagepng($image); // 销毁图像资源 imagedestroy($image); // 返回验证码字符串 return $code; }
Die obige Funktion generiert ein Verifizierungscode-Bild mit einer angegebenen Länge, angegebenen Breite und Höhe, indem sie die von der GD-Bibliothek bereitgestellte Funktion aufruft und eine zufällige Funktion hinzufügt Schnur und Interferenzlinie.
4. Verwenden Sie die Bestätigungscode-Funktion
Um die Bestätigungscode-Funktion auf einer Webseite zu verwenden, müssen Sie das generierte Bestätigungscode-Bild in HTML einbetten und es überprüfen, wenn der Benutzer das Formular absendet.
Das Folgende ist ein einfaches Beispiel für einen Bestätigungscode:
<!DOCTYPE html> <html> <head> <title>验证码示例</title> </head> <body> <form action="verify.php" method="POST"> <label for="captcha">验证码:</label> <input type="text" name="captcha" id="captcha"> <img src="captcha.php" alt="验证码"> <input type="submit" value="提交"> </form> </body> </html>
Im obigen HTML-Code haben wir dem Formular ein Eingabefeld, ein Bild für den Bestätigungscode und eine Schaltfläche zum Senden hinzugefügt. Das src-Attribut des Verifizierungscode-Bildes verweist auf eine Datei namens captcha.php, die zum dynamischen Generieren des Verifizierungscode-Bildes verwendet wird.
Das Folgende ist der Beispielcode der Datei captcha.php:
session_start(); $code = generateCaptcha(); // 调用生成验证码函数生成随机字符串 // 将验证码保存在session中 $_SESSION['captcha'] = $code; // 输出验证码图片 header('Content-Type: image/png'); imagepng($image);
In der Datei captcha.php kapseln wir den Prozess der Generierung des Bestätigungscodes in eine Funktion und speichern die generierte Zufallszeichenfolge in der Sitzung.
Beim Absenden des Formulars müssen wir den vom Benutzer eingegebenen Bestätigungscode überprüfen, wie unten gezeigt:
session_start(); $captcha = $_POST['captcha']; // 获取用户输入的验证码 $code = $_SESSION['captcha']; // 获取保存在session中的验证码 // 比较用户输入的验证码和保存在session中的验证码 if (strtolower($captcha) === strtolower($code)) { // 验证码输入正确 echo "验证码输入正确"; } else { // 验证码输入错误 echo "验证码输入错误"; } // 清空保存在session中的验证码 unset($_SESSION['captcha']);
Im obigen Code vergleichen wir den vom Benutzer eingegebenen Bestätigungscode mit dem in der Sitzung gespeicherten Bestätigungscode. Wenn sie gleich sind, bedeutet dies, dass der Bestätigungscode korrekt eingegeben wurde, andernfalls bedeutet dies, dass der Bestätigungscode falsch eingegeben wurde.
Durch die oben genannten Schritte haben wir erfolgreich eine einfache Bildverifizierungscode-Funktion implementiert. In tatsächlichen Projekten können Länge, Zeichensatz und Bildgröße des Bestätigungscodes entsprechend den Anforderungen zur Verbesserung der Sicherheit angepasst werden. Um Angriffe durch böswillige Roboter zu verhindern, können außerdem einige Einschränkungen zum Überprüfungsprozess hinzugefügt werden, z. B. die Begrenzung der Anzahl der Versuche von Benutzern innerhalb einer bestimmten Zeit, das Hinzufügen eines Aktualisierungsmechanismus für den Überprüfungscode usw.
Zusammenfassung
In diesem Artikel wird erläutert, wie Sie mit PHP eine einfache Bildverifizierungscodefunktion entwickeln und implementieren. Durch die Verwendung der GD-Bibliothek zum Generieren einer zufälligen Zeichenfolge, zum Einbetten in das Bild des Bestätigungscodes und zum anschließenden Speichern des Bestätigungscodes in der Sitzung zur Überprüfung werden automatisierte Vorgänge durch böswillige Roboter effektiv verhindert. Ich hoffe, dieser Artikel ist hilfreich für Sie, vielen Dank fürs Lesen!
Das obige ist der detaillierte Inhalt vonDie 30 Wörter werden wie folgt umgeschrieben: PHP Development Guide: Simple Implementation of Image Verification Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!