Dengan perkembangan Internet yang berterusan, aplikasi Web telah menjadi bahagian yang amat diperlukan dalam kehidupan kita. Banyak perniagaan dan organisasi juga telah membangunkan aplikasi web mereka sendiri untuk menyediakan pengguna dengan produk dan perkhidmatan yang lebih baik. Walau bagaimanapun, dengan populariti aplikasi Web, keselamatan rangkaian telah menjadi isu penting yang perlu kita selesaikan. Kadangkala, kami perlu menggunakan proksi terbalik untuk melindungi aplikasi web kami bagi memastikan data kami selamat.
Nginx ialah pelayan proksi terbalik yang sangat popular. Ia boleh digunakan untuk fungsi seperti pengimbangan beban, proksi terbalik, cache HTTP dan pemprosesan terminal SSL. Dalam artikel ini, kami akan menerangkan cara menggunakan proksi terbalik Nginx untuk mengkonfigurasi senarai kawalan capaian (ACL) berasaskan cap jari penyemak imbas untuk melindungi aplikasi kami.
Cap jari penyemak imbas merujuk kepada pengecam unik penyemak imbas, yang boleh digunakan untuk membezakan penyemak imbas yang berbeza. Pengecam ini terdiri daripada beberapa ciri penyemak imbas, seperti maklumat sistem pengendalian, versi penyemak imbas, senarai pemalam, dsb. ACL berdasarkan cap jari penyemak imbas boleh membuat keputusan berdasarkan pengecam unik penyemak imbas dan memberikan atau menolak akses kepada permintaan tertentu.
Pertama, kita perlu menggunakan JavaScript untuk mengumpul cap jari penyemak imbas. Kami boleh menggunakan perpustakaan pihak ketiga yang sudah siap, seperti Fingerprintjs2, yang menyediakan antara muka yang ringkas dan mudah digunakan untuk mengumpul cap jari penyemak imbas. Kami hanya perlu mengimport perpustakaan dan memanggil kaedah get() untuk mendapatkan cap jari penyemak imbas. Berikut ialah contoh kod:
<script src="https://cdnjs.cloudflare.com/ajax/libs/fingerprintjs2/2.1.0/fingerprint2.min.js"></script> <script> var fingerprint; new Fingerprint2().get(function(result) { fingerprint = result; }); </script>
Selepas mengumpul cap jari penyemak imbas, kami menghantarnya ke pelayan untuk pengesahan. Pelayan membandingkan cap jari pelayar dengan entri dalam senarai kawalan akses. Jika cap jari penyemak imbas sepadan dengan mana-mana entri dalam ACL, pelayan akan memberikan akses. Jika tidak, pelayan akan menafikan akses.
Berikut ialah konfigurasi pelayan proksi terbalik Nginx yang mudah, digunakan untuk mengkonfigurasi ACL berdasarkan cap jari penyemak imbas:
http { # 定义访问控制列表 map $http_user_agent $acl { default 0; # 默认情况下拒绝访问 ~*Firefox 1; # 允许使用Firefox访问 ~*Chrome 1; # 允许使用Chrome访问 } # 反向代理配置 server { listen 80; server_name example.com; location / { if ($acl = 0) { return 403; # 拒绝访问 } # 反向代理到实际的Web应用程序 proxy_pass http://localhost:8080; } } }
Dalam konfigurasi ini, kami menggunakan modul peta Nginx untuk menentukan senarai Kawalan akses. Antaranya, $http_user_agent mewakili medan User-Agent dalam tajuk permintaan HTTP Medan ini mengandungi maklumat penyemak imbas dan boleh digunakan untuk mengenal pasti penyemak imbas. Entri lalai ditetapkan kepada 0, yang bermaksud akses ditolak secara lalai. Kami juga menambah dua ungkapan biasa untuk membenarkan akses menggunakan penyemak imbas Firefox dan Chrome.
Dalam konfigurasi proksi terbalik, kami menggunakan pernyataan if dalam blok lokasi untuk menyemak entri dalam ACL. Jika tiada padanan dalam ACL, kod status 403 dikembalikan, menunjukkan akses ditolak. Jika tidak, kami membalikkan proksi kepada aplikasi web sebenar.
Secara umumnya, proksi terbalik Nginx boleh membantu kami melindungi keselamatan aplikasi web. Dengan mengkonfigurasi ACL berdasarkan cap jari penyemak imbas, kami boleh mengawal kebenaran akses berdasarkan pengecam unik penyemak imbas dan meningkatkan keselamatan aplikasi kami.
Atas ialah kandungan terperinci Konfigurasi ACL berdasarkan cap jari pelayar dalam proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!