Dengan populariti Internet, teknologi kod pengesahan telah menjadi kaedah perlindungan rutin untuk tapak web dan aplikasi. CAPTCHA boleh menghalang robot berniat jahat dan perangkak daripada menyerang tapak web dan aplikasi, memastikan keselamatan maklumat dan privasi pengguna. Dalam ThinkPHP6, teknologi Captcha terbina dalam, dan fungsi kod pengesahan boleh dilaksanakan dengan mudah melalui konfigurasi dan panggilan mudah.
1. Pengenalan asas kepada Captcha
Captcha ialah teknologi kod pengesahan imej adalah untuk menunjukkan kepada pengguna imej yang dijana secara rawak apabila pengguna masuk atau menyerahkan borang kod pengesahan dalam imej untuk meneruskan. Teknologi ini sebahagian besarnya boleh menghalang serangan berniat jahat dan bot automatik daripada merosakkan tapak web atau aplikasi. Teknologi Captcha biasa termasuk nombor, huruf atau gabungan huruf dan nombor, kod pengesahan suara, kod pengesahan gelongsor, dsb.
2. Gunakan teknologi Captcha terbina dalam ThinkPHP6
ThinkPHP6 mempunyai kelas Captcha terbina dalam yang boleh melaksanakan fungsi kod pengesahan dengan mudah. Teknologi Captcha dilaksanakan berdasarkan perpustakaan GD dan mekanisme sesi, dan boleh menjana imej rawak nombor dan huruf. Sebelum digunakan, anda perlu memastikan bahawa perpustakaan GD telah dipasang dan didayakan pada pelayan.
Pertama sekali, kita perlu menetapkan konfigurasi Captcha yang berkaitan dalam konfigurasi fail config/app.php, termasuk bilangan digit bagi kod pengesahan, bilangan kod pengesahan Lebar dan ketinggian dsb. Konfigurasi adalah seperti berikut:
'captcha' => [ // 验证码位数 'length' => 4, // 验证码图片宽度 'width' => 150, // 验证码图片高度 'height' => 50, // 验证码过期时间(秒) 'expire' => 1800, // 是否使用中文验证码 'useZh' => false, // 是否使用算术验证码 'math' => false, // 是否使用背景图 'useImgBg' => false, ],
Dalam konfigurasi di atas, apa yang perlu diperhatikan ialah:
panjang: bilangan digit kod pengesahan, yang boleh ditetapkan mengikut keperluan
lebar dan tinggi: pengesahan Lebar dan ketinggian imej kod boleh ditetapkan mengikut keperluan
tamat tempoh: masa tamat tempoh kod pengesahan, dalam beberapa saat masa yang ditetapkan;
useZh: sama ada Gunakan kod pengesahan bahasa Cina;
useImgBg: Sama ada hendak menggunakan imej latar belakang, anda boleh menambah gambar sebagai latar belakang kod pengesahan.
Penulisan pengawaluse thinkcaptchaacadeCaptcha; class Index extends BaseController { public function captcha() { return Captcha::create(); } }
Dalam kod di atas, kami menggunakan kaedah panggilan statik ThinkPHP6 untuk menjana kod pengesahan terus melalui kaedah Captcha::create(). Kod pengesahan yang dijana akan mengembalikan aliran imej binari, yang boleh kami paparkan secara langsung menggunakan teg
Paparan halaman<form action="submit" method="POST"> <!-- 显示验证码 --> <img src="<?php echo url('/index/captcha'); ?>" onclick="this.src=this.src+'?'+Math.random();" /> <!-- 输入验证码 --> <label for="verifyCode">验证码:</label> <input type="text" name="verifyCode" /> <button type="submit">提交</button> </form>
Dalam kod di atas, kami menggunakan fungsi url() untuk menjana alamat URL Captcha dan mencetuskan penjanaan semula kod pengesahan melalui acara onclick. Nama kotak input kod pengesahan perlu konsisten dengan nama kod pengesahan yang diproses oleh pelayan, supaya pelayan boleh mendapatkan nilai kod pengesahan yang dimasukkan oleh pengguna dengan betul.
3. Ringkasan
Teknologi Captcha telah menjadi kaedah perlindungan konvensional untuk tapak web dan aplikasi Dengan menggunakan kelas Captcha terbina dalam ThinkPHP6, kami boleh melaksanakan fungsi kod pengesahan dengan mudah. Sebelum digunakan, anda perlu memastikan bahawa pustaka GD telah dipasang dan dibuka pada pelayan, dan membuat tetapan yang berkaitan untuk fail konfigurasi Captcha. Akhir sekali, kami perlu memaparkan kod pengesahan pada halaman dan menghantar nilai kod pengesahan yang dimasukkan oleh pengguna kepada pelayan untuk pengesahan apabila borang diserahkan.
Atas ialah kandungan terperinci Menggunakan teknologi Captcha dalam ThinkPHP6. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!