Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cadangan praktikal untuk menyelesaikan masalah menyalin dan menampal kod pengesahan PHP tidak dipaparkan

Cadangan praktikal untuk menyelesaikan masalah menyalin dan menampal kod pengesahan PHP tidak dipaparkan

王林
王林asal
2024-02-29 11:51:04606semak imbas

Cadangan praktikal untuk menyelesaikan masalah menyalin dan menampal kod pengesahan PHP tidak dipaparkan

Cadangan praktikal untuk menyelesaikan masalah salinan dan tampal kod pengesahan PHP tidak dipaparkan

Dalam pembangunan laman web, kod pengesahan ialah kaedah pengesahan yang biasa digunakan untuk menghalang operasi automatik oleh robot atau pengguna yang berniat jahat. Walau bagaimanapun, kadangkala dalam aplikasi sebenar, kami menghadapi masalah bahawa kod pengesahan tidak dipaparkan apabila disalin dan ditampal, yang mungkin menjejaskan pengalaman pengguna dan keselamatan tapak web. Artikel ini akan memberikan beberapa cadangan praktikal untuk menyelesaikan masalah menyalin dan menampal kod pengesahan PHP yang tidak dipaparkan, termasuk contoh kod tertentu.

Penyelesaian 1: Gunakan JavaScript untuk menjana kod pengesahan

Salah satu cara untuk menyelesaikan masalah menyalin dan menampal kod pengesahan PHP dan tidak memaparkannya ialah menggunakan JavaScript untuk menjana kod pengesahan. Apabila pengguna membuka halaman, imej kod pengesahan dijana secara dinamik melalui JavaScript untuk mengelakkan terus menggunakan PHP untuk menjana imej kod pengesahan. Ini memastikan bahawa imej kod pengesahan dipaparkan secara normal dan tidak mudah disalin dan ditampal.

Berikut ialah contoh mudah untuk menjana kod pengesahan berdasarkan JavaScript:

<!DOCTYPE html>
<html>
<head>
    <title>验证码示例</title>
    <script>
        function generateCaptcha() {
            var chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            var captcha = '';
            for (var i = 0; i < 6; i++) {
                captcha += chars[Math.floor(Math.random() * chars.length)];
            }
            
            document.getElementById('captcha').textContent = captcha;
        }
    </script>
</head>
<body>
    <h1>验证码示例</h1>
    <button onclick="generateCaptcha()">生成验证码</button>
    <div id="captcha"></div>
</body>
</html>

Dalam contoh di atas, kod pengesahan rawak 6 digit dijana melalui JavaScript dan dipaparkan pada halaman. Setiap kali pengguna mengklik butang "Jana Kod Pengesahan", kod pengesahan baharu akan dijana. Dengan cara ini, walaupun pengguna cuba menyalin dan menampal kod pengesahan, ia tidak akan berjaya semasa mendaftar atau log masuk.

Penyelesaian 2: Tambah garis gangguan dan hingar

Cara lain untuk menyelesaikan masalah salinan dan tampal kod pengesahan PHP tidak dipaparkan adalah dengan menambah beberapa baris gangguan dan hingar dalam imej kod pengesahan. Ini boleh meningkatkan kerumitan kod pengesahan, mengurangkan kadar pengecaman mesin dan meningkatkan keselamatan kod pengesahan.

Berikut ialah contoh menjana imej kod pengesahan dengan garis gangguan dan hingar berdasarkan PHP:

<?php
session_start();

$width = 120;
$height = 40;
$image = imagecreatetruecolor($width, $height);

$bgColor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgColor);

$chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$captcha = '';
for ($i = 0; $i < 6; $i++) {
    $char = $chars[rand(0, strlen($chars) - 1)];
    $captcha .= $char;
    imagettftext($image, 20, rand(-10, 10), 10+($i*20), 25, imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255)), 'arial.ttf', $char);
}

for ($i = 0; $i < 100; $i++) {
    imagesetpixel($image, rand(0, $width), rand(0, $height), imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255)));
}

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

$_SESSION['captcha'] = $captcha;
?>

Dalam kod PHP di atas, imej kod pengesahan dengan garis gangguan dan hingar dijana dan kod pengesahan disimpan dalam dalam sesi. Apabila pengguna perlu memasukkan kod pengesahan, mereka boleh menggunakan imej ini untuk pengesahan bagi memastikan keselamatan dan kebolehpercayaan kod pengesahan.

Ringkasan:

Melalui dua kaedah di atas, kami boleh menyelesaikan masalah yang kod pengesahan PHP tidak dipaparkan apabila disalin dan ditampal, dan meningkatkan keselamatan dan kebolehpercayaan kod pengesahan. Menggunakan JavaScript untuk menjana kod pengesahan dan menambah garisan gangguan serta titik hingar adalah penyelesaian biasa Anda boleh memilih kaedah yang sesuai dengan tapak web anda berdasarkan keperluan sebenar untuk memastikan pengguna boleh menggunakan fungsi kod pengesahan secara normal.

Atas ialah kandungan terperinci Cadangan praktikal untuk menyelesaikan masalah menyalin dan menampal kod pengesahan PHP tidak dipaparkan. 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