Mit der Entwicklung der Netzwerktechnologie haben Website-Sicherheitsprobleme immer mehr Aufmerksamkeit auf sich gezogen. Als Website-Entwickler müssen wir die Sicherheit der Kontoinformationen und der Privatsphäre der Benutzer gewährleisten. Dabei ist auch die Sicherheit des Benutzeranmeldevorgangs sehr wichtig. Um die Sicherheit von Benutzerkonten zu schützen, müssen wir der Benutzeranmeldeseite eine Bestätigungscodefunktion hinzufügen. In diesem Artikel wird erläutert, wie Sie PHP verwenden, um die Codefunktion für die Benutzeranmeldung zu implementieren.
Verifizierungscode ist eine Technologie, die Menschen von Computerprogrammen unterscheidet und böswillige Angreifer effektiv daran hindern kann, mithilfe automatisierter Programme Angriffe auf Websites zu starten. Gängige Verifizierungscodes gibt es in verschiedenen Formen wie Zahlen, Buchstaben, Grafiken usw. Benutzer müssen den Verifizierungscode beim Anmelden korrekt eingeben, um die Identität des Benutzers zu überprüfen.
Bei der Website-Entwicklung werden in der Regel Verifizierungscodes in das Anmeldesystem eingebettet, um zu verhindern, dass böswillige Benutzer durch Brute-Force-Cracking und andere Methoden Systemberechtigungen erhalten. Gleichzeitig können Verifizierungscodes auch verhindern, dass böswillige Benutzer automatisierte Programme verwenden, um Daten anzugreifen und zu löschen.
In PHP können Sie die GD-Erweiterungsbibliothek verwenden, um verschiedene Bestätigungscodes zu zeichnen, darunter Zahlen, Buchstaben, Grafiken usw. Im Folgenden nehmen wir numerische und alphabetische Verifizierungscodes als Beispiel, um vorzustellen, wie man Verifizierungscodes in PHP erstellt.
2.1. Generierung digitaler Bestätigungscodes
Digitaler Bestätigungscode ist die einfachste und häufigste Form der Erstellung von Bestätigungscodes. Numerische Verifizierungscodes können mithilfe von Funktionen in der GD-Bibliothek generiert werden. Unten finden Sie einen Beispielcode, der einen zufälligen 4-stelligen Bestätigungscode generiert.
<?php session_start(); // 开启 session header('Content-type: image/png'); // 设置 Content-type $im = imagecreatetruecolor(80, 40); // 创建一个宽为80,高为40的验证码背景图 $bgColor = imagecolorallocate($im, 255, 255, 255); // 设置背景色为白色 imagefill($im, 0, 0, $bgColor); // 绘制背景 $code = rand(1000, 9999); // 随机生成一个 4 位数的验证码 $_SESSION['code'] = $code; // 把验证码存储在 Session 中,以便在其他页面中使用 $textColor = imagecolorallocate($im, 0, 0, 0); // 设置验证码颜色 imagestring($im, 5, 20, 12, $code, $textColor); // 绘制验证码 imagepng($im); // 输出 PNG 图片 imagedestroy($im); // 释放内存 ?>
Analyse:
2.2. Generierung von alphanumerischen gemischten Bestätigungscodes
Numerische Bestätigungscodes sind anfällig für Angriffe. Um die Sicherheit zu verbessern, können wir die Form von alphanumerischen gemischten Bestätigungscodes verwenden. Ebenso können wir das alphanumerische Captcha mithilfe der GD-Bibliothek von PHP zeichnen. Unten finden Sie einen Beispielcode, der einen zufälligen 4-stelligen alphanumerischen Bestätigungscode generiert.
<?php session_start(); // 开启 session header('Content-type: image/png'); // 设置 Content-type $im = imagecreatetruecolor(100, 40); // 创建一个宽为100,高为40的验证码背景图 $bgColor = imagecolorallocate($im, 255, 255, 255); // 设置背景色为白色 imagefill($im, 0, 0, $bgColor); // 绘制背景 // 字母数字集 $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $len = strlen($chars); $code = ''; for ($i = 0; $i < 4; $i++) { $code .= $chars[rand(0, $len-1)]; } $_SESSION['code'] = $code; // 把验证码存储在 Session 中,以便在其他页面中使用 $textColor = imagecolorallocate($im, 0, 0, 0); // 设置验证码颜色 // 使用随机字体和位置,绘制验证码 for ($i = 0; $i < 4; $i++) { $font = rand(1, 5); // 随机选择字体 $angle = rand(-20, 20); // 随机旋转角度 $x = $i * 20 + rand(0, 10); // 规定较小的x坐标值和x步进值,y的值也可以自定义 $y = rand(20, 30); $fontColor = imagecolorallocate($im, rand(0, 255), rand(0, 255), rand(0, 255)); $char = substr($code, $i, 1); imagettftext($im, 18, $angle, $x, $y, $fontColor, __DIR__.'/font'.$font.'.ttf', $char); } imagepng($im); // 输出 PNG 图片 imagedestroy($im); // 释放内存 ?>
Analyse:
Nach dem Generieren des Bestätigungscodes müssen Sie nur noch das Programm einführen, um den Bestätigungscode auf der Benutzeranmeldeseite zu generieren. Bei der Überprüfung der vom Benutzer eingegebenen Konto- und Passwortinformationen muss auch überprüft werden, ob der vom Benutzer eingegebene Bestätigungscode korrekt ist.
Das Folgende ist ein Beispielcode für eine Benutzeranmeldeseite.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <form action="login.php" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username"><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br> <label for="code">Code:</label> <input type="text" id="code" name="code"><br> <img src="captcha.php" alt="Captcha"> <button type="submit">Submit</button> </form> </body> </html>
Ähnlich wie bei der normalen Benutzeranmeldeseite haben wir bei der Eingabe des Kontos und des Passworts einen Bestätigungscode-Teil hinzugefügt und das Programm zur Generierung von Bestätigungscodes captcha.php eingeführt. Nachdem der Benutzer die Kontonummer, das Passwort und den Bestätigungscode eingegeben hat, klickt er auf die Schaltfläche „Senden“. Das System sendet die vom Benutzer eingegebenen Informationen zur Überprüfung an login.php.
Das Folgende ist der Code in login.php, mit dem überprüft wird, ob die vom Benutzer eingegebenen Informationen zu Kontonummer, Passwort und Bestätigungscode korrekt sind.
<?php session_start(); $username = $_POST['username']; $password = $_POST['password']; $code = $_POST['code']; // 验证用户输入的验证码是否正确 if (strtolower($code) !== strtolower($_SESSION['code'])) { echo 'Invalid Code.'; exit; } // 验证用户输入的账号和密码是否正确 if ($username === 'admin' && $password === 'admin') { echo 'Login Successfully.'; } else { echo 'Invalid Username or Password.'; } ?>
In login.php überprüfen wir zunächst, ob der vom Benutzer eingegebene Bestätigungscode korrekt ist. Wenn der Bestätigungscode nicht übereinstimmt, wird der Benutzer aufgefordert, einen ungültigen Bestätigungscode einzugeben und die Anmeldeüberprüfung zu beenden. Andernfalls überprüfen wir, ob die vom Benutzer eingegebenen Konto- und Passwortinformationen korrekt sind. Wenn es korrekt ist, wird der Benutzer aufgefordert, sich erfolgreich anzumelden. Andernfalls wird eine Meldung angezeigt, dass der Benutzername oder das Kennwort ungültig ist.
In diesem Artikel wird erläutert, wie Sie mit PHP- und GD-Bibliotheken gemischte numerische und alphanumerische Bestätigungscodes generieren und wie Sie Bestätigungscodes auf Websites verwenden, um die Sicherheit der Benutzeranmeldeinformationen zu gewährleisten. Durch das Studium dieses Artikels haben Sie gelernt, wie Sie böswillige Benutzer davon abhalten können, automatisierte Programme zum Angriff auf Ihre Website zu verwenden, und wie Sie das Konto und die Privatsphäre der Website-Benutzer schützen.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie PHP zur Implementierung der Benutzer-Login-Verifizierungscode-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!