Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan kod pengesahan log masuk pengguna dan fungsi keselamatan dalam laman web soal jawab pengetahuan.

PHP melaksanakan kod pengesahan log masuk pengguna dan fungsi keselamatan dalam laman web soal jawab pengetahuan.

王林
王林asal
2023-07-02 21:41:191185semak imbas

PHP melaksanakan kod pengesahan log masuk pengguna dan fungsi keselamatan dalam laman web soal jawab pengetahuan

Dengan perkembangan Internet, semakin banyak laman web soal jawab pengetahuan muncul dalam kehidupan kita. Untuk memastikan keselamatan maklumat pengguna dan mencegah tingkah laku berniat jahat, kod pengesahan log masuk pengguna dan fungsi keselamatan telah menjadi sangat penting. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan kod pengesahan log masuk pengguna dan fungsi keselamatan dalam tapak web soal jawab pengetahuan.

1. Kod pengesahan log masuk pengguna

1 Jana kod pengesahan
Kod pengesahan log masuk pengguna ialah kod pengesahan grafik yang digunakan untuk mengesahkan identiti pengguna. Kami boleh menggunakan perpustakaan GD PHP untuk menjana imej kod pengesahan. Berikut ialah contoh kod mudah untuk menjana kod pengesahan:

<?php
session_start();

$width = 130;
$height = 40;
$length = 4;

$code = '';
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$chars_length = strlen($chars);

for ($i = 0; $i < $length; $i++) {
    $code .= $chars[rand(0, $chars_length - 1)];
}

$_SESSION['code'] = $code;

$image = imagecreatetruecolor($width, $height);
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);

imagefilledrectangle($image, 0, 0, $width, $height, $background_color);
imagettftext($image, 20, 0, 10, 28, $text_color, 'arial.ttf', $code);

header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

2. Sahkan kod pengesahan
Apabila pengguna menyerahkan borang log masuk, kami perlu mengesahkan sama ada kod pengesahan yang dimasukkan oleh pengguna adalah betul. Berikut ialah contoh kod untuk pengesahan kod pengesahan mudah:

<?php
session_start();

$submitted_code = $_POST['code'];
$stored_code = $_SESSION['code'];

if ($submitted_code == $stored_code) {
    // 验证码匹配成功
    // 执行登录操作
} else {
    // 验证码匹配失败
    // 返回错误信息
}
?>

2. Fungsi keselamatan log masuk pengguna

Selain kod pengesahan, fungsi keselamatan lain juga boleh diguna pakai untuk memastikan keselamatan maklumat log masuk pengguna.

1. Penyulitan kata laluan
Apabila menyimpan kata laluan pengguna, ia hendaklah disulitkan menggunakan fungsi cincang untuk melindungi keselamatan kata laluan pengguna. Berikut ialah contoh kod yang menggunakan fungsi password_hash PHP untuk menyulitkan kata laluan:

<?php
$password = $_POST['password'];

$hash = password_hash($password, PASSWORD_DEFAULT);

// 将$hash存储到数据库的密码字段中
?>

2. Cegah suntikan SQL
Dalam sistem log masuk pengguna, maklumat yang dimasukkan oleh pengguna mesti ditapis dan disahkan untuk mengelakkan serangan suntikan SQL. Berikut ialah contoh kod mudah yang menggunakan fungsi mysqli_real_escape_string PHP untuk menghalang pemprosesan suntikan maklumat yang dimasukkan pengguna:

<?php
$username = $_POST['username'];
$password = $_POST['password'];

$username = mysqli_real_escape_string($conn, $username);
$password = mysqli_real_escape_string($conn, $password);

// 执行SQL查询
?>

3 Hadkan bilangan percubaan log masuk
Untuk mengelakkan pemecahan kata laluan secara kasar, anda boleh menetapkan had pada. bilangan percubaan log masuk. Jika pengguna gagal log masuk lebih daripada beberapa kali, akaun pengguna boleh dikunci untuk satu tempoh masa. Berikut ialah contoh kod mudah yang menggunakan mekanisme sesi PHP untuk mengehadkan bilangan percubaan log masuk:

<?php
session_start();

$username = $_POST['username'];
$password = $_POST['password'];

// 检查登录尝试次数
if (isset($_SESSION['login_attempts'])) {
    $_SESSION['login_attempts'] += 1;
} else {
    $_SESSION['login_attempts'] = 1;
}

// 检查登录尝试次数是否超过限制
if ($_SESSION['login_attempts'] > 5) {
    // 锁定账号一段时间
    $_SESSION['locked'] = true;
} else {
    // 执行登录操作
}
?>

Artikel ini memperkenalkan cara menggunakan PHP untuk melaksanakan kod pengesahan log masuk pengguna dan fungsi keselamatan dalam tapak web soal jawab pengetahuan. Melalui kod pengesahan, anda boleh menghalang program dan robot berniat jahat daripada log masuk dan memastikan keselamatan maklumat pengguna melalui fungsi seperti penyulitan kata laluan, menghalang suntikan SQL, dan mengehadkan bilangan percubaan log masuk, anda boleh meningkatkan keselamatan sistem; . Saya harap artikel ini akan membantu anda memahami dan melaksanakan kod pengesahan log masuk pengguna dan fungsi keselamatan.

Atas ialah kandungan terperinci PHP melaksanakan kod pengesahan log masuk pengguna dan fungsi keselamatan dalam laman web soal jawab pengetahuan.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn