Dalam beberapa tahun kebelakangan ini, dengan perkembangan berterusan teknologi Internet dan peningkatan kepentingan keselamatan rangkaian, semakin banyak tapak web telah mula menggunakan beberapa mekanisme pengesahan untuk melindungi keselamatan data mereka. Antaranya, mengesahkan Hos biasanya yang paling asas.
Apakah itu Hos?
Pertama sekali, kita perlu memahami maksud Hos. Dalam rangkaian komputer, Hos merujuk kepada komputer yang disambungkan ke Internet atau rangkaian lain. Setiap komputer mempunyai alamat IP yang unik, dan apabila kita menggunakan Internet, tapak web yang kita lihat sebenarnya terdiri daripada komputer ini. Sebagai contoh, apabila kita memasukkan www.baidu.com dalam pelayar, kita sebenarnya akan mengakses alamat IP pelayan Baidu.
Pengesahan hos
Pengesahan hos merujuk kepada pengesahan nilai Hos yang diminta oleh pelanggan semasa berkomunikasi antara pelanggan dan pelayan. Secara umumnya, apabila membuat permintaan rangkaian, pelanggan akan menambah medan Hos pada pengepala permintaan untuk memberitahu pelayan nama hos yang ingin diakses olehnya. Pengesahan hos menyemak medan Hos di bahagian pelayan untuk memastikan ia konsisten dengan nama hos pada pelayan. Ini boleh menghalang permintaan daripada "dirampas" dengan berkesan.
Perlu diambil perhatian bahawa pengesahan Hos hanyalah perbandingan mudah medan Hos dan tidak melibatkan proses resolusi DNS. Oleh itu, jika penyerang telah melakukan "serangan man-in-the-middle" melalui rampasan DNS, pengesahan Hos tidak akan dapat menghalang serangan ini.
JavaScript melaksanakan kaedah pengesahan Hos
Dalam JavaScript, kami boleh menggunakan ungkapan biasa untuk mengesahkan medan Hos. Contohnya, kod berikut boleh melakukan pengesahan asas pada Hos:
function isHostValid(host) { var pattern = /^(?:[\w-]+\.)+[\w-]+$/; return pattern.test(host); }
Fungsi ungkapan biasa ini adalah untuk menentukan sama ada hos ialah nama domain yang sah. Antaranya, (?:[w-]+.)+
memadankan satu atau lebih nama subdomain yang terdiri daripada huruf, nombor atau sempang, disambungkan dengan titik di tengah. [w-]+
akhir sepadan dengan nama domain peringkat tinggi, seperti com, cn, org, dsb.
Sudah tentu, ini hanyalah kaedah pengesahan Hos yang paling asas. Dalam amalan, kami juga mungkin perlu mengendalikan beberapa situasi khas, seperti:
Dalam sesetengah kes, perkara yang perlu kami sahkan bukanlah domain nama, tetapi merupakan alamat IP. Dalam kes ini, kita boleh menukar peraturan padanan ungkapan biasa, seperti ini:
function isHostValid(host) { var pattern = /^([0-9]{1,3}\.){3}[0-9]{1,3}$/; return pattern.test(host); }
Fungsi ungkapan biasa ini adalah untuk memadankan alamat IPv4 standard.
Sesetengah tapak web mempunyai nama subdomain, seperti mail.google.com, blog.csdn.net, dsb. Dalam kes ini, kami memerlukan padanan yang lebih kompleks pada Hos. Dalam kes ini, kita boleh menggunakan ungkapan biasa yang lebih fleksibel untuk pemadanan.
function isHostValid(host) { var pattern = /^(([\w-]+\.)+\w{2,})(:\d+)?$/; return pattern.test(host); }
Fungsi ungkapan biasa ini adalah untuk memadankan satu atau lebih nama subdomain yang terdiri daripada huruf, nombor atau sempang, disambungkan dengan titik di tengah. w{2,}
terakhir bermaksud memadankan domain Peringkat Atas. Jika anda turut memasukkan nombor port, anda boleh menambah (:d+)?
pada penghujung ungkapan untuk dipadankan.
Ringkasan
Pengesahan hos ialah mekanisme keselamatan rangkaian asas yang boleh menghalang permintaan daripada "dirampas" sebahagian besarnya. Dalam amalan, kita perlu menggunakan kaedah yang berbeza untuk mengesahkan Hos mengikut keperluan yang berbeza. Sama ada dalam JavaScript atau bahasa pengaturcaraan lain, kami perlu memberi perhatian kepada isu pengesahan Hos untuk memastikan komunikasi rangkaian kami selamat dan boleh dipercayai.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan Hos dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!