


Kaedah sekatan akses aset - Blok pelawat yang tidak diingini
3
Takeaways Key
Melaksanakan kawalan akses ke aset anda adalah penting untuk keselamatan. Whitelisting adalah pendekatan yang disyorkan, di mana penjaga pintu hanya membolehkan entiti yang dipercayai untuk mengakses aset anda. Penjaga pintu ini boleh diletakkan di pelayan HTTP atau kod aplikasi, menyediakan alat untuk memeriksa http_host.
Kawalan akses di peringkat kod aplikasi menawarkan lebih banyak fleksibiliti. Kaedah ini juga boleh mengendalikan situasi iframe, di mana perujuk tidak memberikan maklumat mengenai status iframe. Walau bagaimanapun, kedua-dua kaedah pelayan HTTP dan kod aplikasi tidak mudah alih dan penjaga pintu berasaskan token seperti OAuth disyorkan untuk keselamatan yang dipertingkatkan.
- Apabila membina aplikasi web atau laman web yang hebat, kadang -kadang kita mahu orang ramai dapat membenamkan bahagian aplikasi/laman web kami ke dalam mereka sendiri. Itu boleh menjadi iframe memegang butang 'suka', imej mudah yang mereka mahu gunakan semula atau bahkan keseluruhan aplikasi kami yang tertanam dalam iframe.
- Tetapi bagaimana kita mengawal siapa yang mempunyai akses, siapa yang dibenarkan menggunakan jalur lebar kami dan menanyakan perkhidmatan kami?
- kami menentukan masalah sebagai
ke
aset
oleh aset yang kita maksudkan: apa sahaja yang boleh dipersoalkan dari laman web kami. Sekatan Akses: Benarkan beberapa, blok semua Apabila bercakap mengenai kawalan akses, kami memasukkan domain keselamatan. Dan apabila bercakap keselamatan, senarai putih harus menjadi pendekatan yang diambil untuk menangani masalah tersebut. Lebih mudah untuk mengawal siapa yang dibenarkan mengakses aset
andadaripada mengawal siapa yang tidak. Tidak mustahil untuk mengetahui semua raksasa boogie Internet.
Untuk melindungi aset
kami, kami mengupah penjaga pintu untuk hanya membiarkan orang yang kami percayai. Setelah disewa, kami memberinya akses kepada Whitelist yang kami kendalikan, dan biarkan dia melakukan semua mengangkat berat. Masalah diselesaikan. Tetapi bagaimanakah pengangkat pintu masuk? Taktik mengangkat
Bergantung pada seberapa selamat yang anda mahukan penjaga pintu dan apa yang diminta oleh pelanggan, taktik yang berbeza boleh digunakan. Pendekatan biasa yang digunakan ialah memeriksa tajuk rujukan. Kaedah itu mempunyai 3 kelemahan besar:
- Rujukan juga ditetapkan apabila orang mengakses laman web anda menggunakan pautan
- Rujukan dihantar ke pelayan anda oleh klien, dan boleh diubah
- Rujukan mungkin tidak ditetapkan sama sekali
bro, adakah anda mengangkat?
Bergantung pada persediaan yang digunakan, pertanyaan yang dibuat melalui satu siri
Gates . Persediaan mudah ialah: klien -> pelayan http -> kod aplikasi
Jadi di manakah penjaga pintu anda duduk? Pelanggan adalah de facto tidak pergi untuk kawalan akses kerana dia adalah sekeping manusia yang tidak boleh dipercayai. Pelayan HTTP dan kod aplikasi di sisi lain adalah pilihan yang berguna. Kedua -duanya memberi kami alat yang kuat untuk memeriksa http_host.pelayan http tahu cara mengangkat
Kekuatan dalam mempunyai pelayan HTTP anda mengendalikan kawalan akses anda adalah kelajuan. Tidak perlu membakar kod permohonan untuk setiap permintaan. Ini secara drastik dapat meningkatkan prestasi kerana kita tidak perlu memuatkan keseluruhan stack/thread aplikasi (mis. Mod_php) ke dalam ingatan.
Bergantung pada pelayan HTTP anda, penyelesaian yang berbeza boleh didapati.
Apache
Di Apache, terdapat dua kaedah yang berbeza. Kita boleh menggunakan mod_rewrite atau membenarkan/menafikan.
Kaedah mod_rewrite:
# Turn mod_rewrite on RewriteEngine On # if it is not trusted.domain.tld block it RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC] RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC] RewriteRule ^ - [F]
mod_rewrite disokong oleh kebanyakan penyedia hosting.kaedah membenarkan/menafikan:
#specify the files to guard, block all the assets <files "*.*"> #block everyone Deny from all #allow trusted ones Allow from trusted.tld trusted.domain.tld </files>
tidak semua tuan rumah menyokong tetapan tersebut.nginx
httpreferermodule di nginx memberi kita valid_referers yang sangat sejuk: jadi semua yang perlu kita lakukan adalah, mengembalikan kod http 444 apabila domain yang tidak dipercayai cuba mengakses aset kita:
Sambungan tanpa menghantar sebarang tajuk ...
pelayan http tidak berfikir
location / { valid_referers trusted.tld trusted.domain.tld; if ($invalid_referer) { return 444; } }
Masalah besar di sini adalah skalabilitas: Bagaimana jika kita mempunyai 1000 domain yang perlu dapat mengakses aset kita? Bagaimana jika senarai domain sering berubah?
Untuk setiap pengeditan kecil, kita perlu menyelam ke dalam fail konfigurasi kami - dan semakin banyak anda berubah secara manual, semakin banyak yang boleh salah.
kod aplikasi tahu apa yang harus dilakukan
Mempunyai kawalan akses anda pada tahap kod aplikasi anda bermakna lebih banyak fleksibiliti. Seseorang boleh mempunyai penjaga pintu dan berjalan dalam masa yang singkat:
bagaimana dengan iframes itu?
<span><span><?php </span></span><span><span>//the whitelist we control </span></span><span><span>$whitelist = array( </span></span><span> <span>'trusted.tld', </span></span><span> <span>'trusted.domain.tld' </span></span><span><span>); </span></span><span> </span><span><span>//the referer </span></span><span><span>$referer = parse_url($_SERVER["HTTP_REFERER"], PHP_URL_HOST); </span></span><span> </span><span><span>//the gatekeeper </span></span><span><span>if ( !in_array($referer, $whitelist) ) </span></span><span><span>{ </span></span><span> <span>throw new GateKeeperDoesNotApprove; </span></span><span><span>}</span></span>
Seperti yang disebutkan, bergantung kepada rujukan itu tidak selalu menjadi idea yang baik. Ia bukan sahaja data dari manusia yang tidak boleh dipercayai, ia juga tidak memberi kita petunjuk sama ada kita berada dalam iframe atau tidak. Hanya ada cara untuk mengetahui.
Kami boleh menyewa seorang hitman untuk membantu penjaga pintu kami. Hitman kami akan dihantar kepada manusia yang kelihatan mencurigakan (mis. Orang -orang yang mempunyai rujukan yang tidak dipercayai). The hitman akan menggunakan JS sebagai senjatanya:
# Turn mod_rewrite on RewriteEngine On # if it is not trusted.domain.tld block it RewriteCond %{HTTP_REFERER} !^trusted\.domain\.tld$ [NC] RewriteCond %{HTTP_REFERER} !^trusted\.tld$ [NC] RewriteRule ^ - [F]
Sayangnya, seseorang yang tiba dari domain yang tidak dipercayai mempunyai rujukan yang sama seperti orang lain yang mengakses kami menggunakan iframe dari domain yang tidak dipercayai itu. Aset, bagaimanapun, akan mempunyai rujukan yang ditetapkan ke domain kami (walaupun dalam situasi iframe) - jadi menghantar hitman di sini adalah berlebihan. Cukup menafikan akses sudah cukup - atau anda boleh menghantar imej anak kucing rawak.
Itulah sebabnya kami mempunyai pemeriksaan hitman kami jika kami berada dalam iframe. Jika ya, kami telah membunuh sasaran kami:
#specify the files to guard, block all the assets <files "*.*"> #block everyone Deny from all #allow trusted ones Allow from trusted.tld trusted.domain.tld </files>
Satu -satunya perkara yang perlu kita tahu ialah mempunyai penjaga pintu kami menambah hitman ke muatan yang dihantar kepada pelanggan. Mudah!
location / { valid_referers trusted.tld trusted.domain.tld; if ($invalid_referer) { return 444; } }
Kod ini bukan bukti pengeluaran. Ia berfungsi sebagai contoh.
bagaimana dengan keselamatan sebenar?
Penyelesaian yang dibekalkan di sini akan menjaga anda terhadap kebanyakan raksasa boogie. Tetapi kedua -dua penyelesaian bukan bukti bodoh. Yang pertama menggunakan data dari klien, yang kedua adalah JavaScript yang dijalankan oleh klien.
Cara yang selamat adalah menggunakan penjaga pintu berasaskan token. OAuth mungkin lelaki yang anda mahukan untuk pekerjaan di sini, tetapi itu adalah di luar skop artikel ini.
Soalan Lazim (Soalan Lazim) mengenai Kaedah Sekatan Akses Aset
Apakah kaedah sekatan akses aset yang berbeza? Kaedah ini termasuk penyekatan IP, yang melibatkan menyekat akses dari alamat IP tertentu; Geo-blocking, yang menyekat akses berdasarkan lokasi geografi; dan menyekat ejen pengguna, yang menghalang akses daripada pelayar atau peranti tertentu. Kaedah lain termasuk penyekatan perujuk HTTP, yang menyekat akses berdasarkan laman web rujukan, dan perlindungan kata laluan, yang memerlukan pengguna memasukkan kata laluan untuk mendapatkan akses.
Penyekatan IP adalah kaedah yang digunakan untuk mengelakkan alamat IP tertentu daripada mengakses aset digital. Ini dilakukan dengan menambahkan alamat IP ke 'senarai hitam' dalam fail konfigurasi pelayan. Sebarang permintaan yang datang dari alamat IP ini akan dinafikan, dengan berkesan menyekat mereka daripada mengakses aset. Hadkan akses kepada aset digital berdasarkan lokasi geografi. Ini sering digunakan untuk mematuhi perjanjian pelesenan serantau atau untuk mengelakkan akses dari kawasan yang dikenali untuk serangan siber. Geo-blocking berfungsi dengan menentukan lokasi pengguna berdasarkan alamat IP mereka.Bagaimanakah penyekatan ejen pengguna boleh digunakan dalam sekatan akses aset?
Bagaimana perlindungan kata laluan berfungsi dalam sekatan akses aset? aset digital dengan menghendaki pengguna memasukkan kata laluan. Ini sering digunakan untuk aset peribadi atau sensitif. Pelayan akan meminta pengguna untuk kata laluan apabila mereka cuba mengakses aset, dan hanya mereka yang memasuki kata laluan yang betul akan diberikan akses. 🎜> Ya, kaedah sekatan akses aset berganda boleh digunakan bersama -sama untuk menyediakan tahap keselamatan yang lebih tinggi. Sebagai contoh, anda boleh menggunakan penyekatan IP untuk mengelakkan akses dari alamat IP tertentu, dan kemudian gunakan perlindungan kata laluan untuk menyekat akses kepada pengguna yang diberi kuasa sahaja. >
Melaksanakan kaedah sekatan akses aset di laman web anda biasanya melibatkan mengubah suai fail konfigurasi pelayan anda. Proses yang tepat akan bergantung pada perisian pelayan yang anda gunakan dan kaedah sekatan khusus yang anda ingin laksanakan. Boleh memberikan tahap keselamatan yang tinggi, mereka juga berpotensi menghalang pengguna yang sah. Sebagai contoh, penyekatan IP boleh menghalang pengguna yang menggunakan VPN atau proksi, dan geo-blocking boleh menghalang pengguna yang melakukan perjalanan ke luar negara. Oleh itu, penting untuk mempertimbangkan dengan teliti kesan yang berpotensi kepada pengguna sebelum melaksanakan kaedah ini. Rangkaian (CDN) untuk mengedarkan aset anda, menggunakan firewall untuk melindungi pelayan anda, atau menggunakan plugin keselamatan atau perkhidmatan yang menyediakan pelbagai ciri keselamatan. Alternatif ini dapat memberikan tahap keselamatan yang tinggi tanpa potensi kelemahan kaedah sekatan akses aset.
Atas ialah kandungan terperinci Kaedah sekatan akses aset - Blok pelawat yang tidak diingini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Dalam php, kata laluan_hash dan kata laluan 1) password_hash menjana hash yang mengandungi nilai garam untuk meningkatkan keselamatan. 2) Kata Laluan_verify Sahkan kata laluan dan pastikan keselamatan dengan membandingkan nilai hash. 3) MD5 dan SHA1 terdedah dan kekurangan nilai garam, dan tidak sesuai untuk keselamatan kata laluan moden.

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

PHP adalah bahasa skrip yang digunakan secara meluas di sisi pelayan, terutamanya sesuai untuk pembangunan web. 1.PHP boleh membenamkan HTML, memproses permintaan dan respons HTTP, dan menyokong pelbagai pangkalan data. 2.PHP digunakan untuk menjana kandungan web dinamik, data borang proses, pangkalan data akses, dan lain -lain, dengan sokongan komuniti yang kuat dan sumber sumber terbuka. 3. PHP adalah bahasa yang ditafsirkan, dan proses pelaksanaan termasuk analisis leksikal, analisis tatabahasa, penyusunan dan pelaksanaan. 4.Php boleh digabungkan dengan MySQL untuk aplikasi lanjutan seperti sistem pendaftaran pengguna. 5. Apabila debugging php, anda boleh menggunakan fungsi seperti error_reporting () dan var_dump (). 6. Mengoptimumkan kod PHP untuk menggunakan mekanisme caching, mengoptimumkan pertanyaan pangkalan data dan menggunakan fungsi terbina dalam. 7

PHP digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan pembangunan API. 1) e-dagang: Digunakan untuk fungsi keranjang belanja dan pemprosesan pembayaran. 2) Sistem Pengurusan Kandungan: Digunakan untuk penjanaan kandungan dinamik dan pengurusan pengguna. 3) Pembangunan API: Digunakan untuk Pembangunan API RESTful dan Keselamatan API. Melalui pengoptimuman prestasi dan amalan terbaik, kecekapan dan pemeliharaan aplikasi PHP bertambah baik.

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.

PHP masih dinamik dan masih menduduki kedudukan penting dalam bidang pengaturcaraan moden. 1) kesederhanaan PHP dan sokongan komuniti yang kuat menjadikannya digunakan secara meluas dalam pembangunan web; 2) fleksibiliti dan kestabilannya menjadikannya cemerlang dalam mengendalikan borang web, operasi pangkalan data dan pemprosesan fail; 3) PHP sentiasa berkembang dan mengoptimumkan, sesuai untuk pemula dan pemaju yang berpengalaman.

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

PHP sesuai untuk pembangunan web, terutamanya dalam pembangunan pesat dan memproses kandungan dinamik, tetapi tidak baik pada sains data dan aplikasi peringkat perusahaan. Berbanding dengan Python, PHP mempunyai lebih banyak kelebihan dalam pembangunan web, tetapi tidak sebaik python dalam bidang sains data; Berbanding dengan Java, PHP melakukan lebih buruk dalam aplikasi peringkat perusahaan, tetapi lebih fleksibel dalam pembangunan web; Berbanding dengan JavaScript, PHP lebih ringkas dalam pembangunan back-end, tetapi tidak sebaik JavaScript dalam pembangunan front-end.
