Bagaimana untuk mengelakkan hotlinking imej atau aset lain?
Mencegah imej atau sumber-sumber lain daripada menjadi rantaian panas boleh dicapai melalui pelbagai kaedah: 1. Gunakan .htaccess untuk menubuhkan rantai anti-kecurian dan menyekat akses luaran dengan menilai pengepala rujukan; 2. Konfigurasikan peraturan valid_referers di nginx untuk mengelakkan permintaan haram; 3. Gunakan senarai putih, URL tandatangan dan fungsi rantai anti-kecurian lain yang disediakan oleh CDN; 4. Tambah tanda air atau berikan kecil kepada imej untuk mengurangkan nilai rantaian kecurian. Kaedah ini boleh digunakan secara bersendirian atau dalam kombinasi, dengan berkesan mengurangkan sisa lebar jalur.
Mencegah imej atau sumber lain daripada menjadi hotlinked sebenarnya adalah keperluan biasa, terutamanya apabila trafik laman web atau jalur lebar adalah terhad. Cara yang paling langsung adalah untuk menyekat sumber luaran daripada mengakses sumber statik anda melalui konfigurasi pelayan.
1. Sediakan rantai anti-kecurian menggunakan .htaccess (untuk Apache)
Jika anda menggunakan pelayan Apache, anda boleh menetapkan peraturan pautan anti-kecurian melalui fail .htaccess
. Idea asas adalah untuk menilai pengepala Referer
permintaan. Jika bukan nama domain anda sendiri, akses akan ditolak.
Contoh kod:
Menulis semula Menulis semula %{http_referer}!^$ Menulis semula %{http_referer}!^Https?: // (www \.)? Yourdomain \ .com/[nc] Rewriterule \. (Jpg | jpeg | png | gif | mp4) $ - [f, nc, l]
Makna peraturan ini ialah: Jika sumber permintaan bukan laman web anda sendiri, permintaan luaran ke fail imej atau video akan mengembalikan ralat 403.
Beberapa mata yang perlu diperhatikan:
- Ganti
yourdomain.com
ke dalam nama domain sebenar anda sendiri - Jenis fail boleh ditambah atau menurun seperti yang diperlukan
- Sekiranya anda menggunakan CDN atau membenarkan beberapa sumber rujukan pihak ketiga, ingatlah dengan senarai nama domain ini
2. Gunakan nginx untuk mengkonfigurasi peraturan pautan anti-kecurian
Pendekatan Nginx juga sangat serupa, kecuali sintaks adalah berbeza. Anda boleh menambah kandungan berikut di pelayan atau blok lokasi:
Lokasi ~ \. (jpg | jpeg | png | gif | mp4) $ { valid_referers Tiada yang disekat yourdomain.com www.yourdomain.com; jika ($ invalid_referer) { pulangan 403; } }
Juga ganti dengan nama domain anda sendiri. Selepas konfigurasi ini, permintaan dari sumber yang tidak dibenarkan akan disekat.
Petua: Jika anda mahu menggantikannya dengan imej segera dan bukannya kembali 403, anda boleh menggunakan rewrite
untuk menunjuk kepada imej pengganti, seperti:
menulis semula ^/imej /(.*)$ /images/nohotlink.jpg break;
3. Gunakan fungsi pautan anti-kecurian yang disediakan oleh CDN
Pada masa kini, banyak perkhidmatan CDN datang dengan fungsi rantai anti-kecurian, seperti Cloudflare, Alibaba Cloud, Tencent Cloud, dan lain-lain. Mereka biasanya menyokong cara berikut:
- Rujukan Whitelist
- URL Tandatangan (dengan cap waktu dan kunci)
- Senarai IP Hitam dan Putih
Menggunakan URL yang ditandatangani adalah cara yang lebih selamat kerana walaupun seseorang melihat pautan, ia tidak boleh dicuri pada kehendak, kerana pautan akan tamat selepas beberapa ketika.
Sekiranya anda sudah menggunakan CDN, disarankan untuk pergi ke konsol untuk melihat sama ada terdapat sebarang tetapan berkaitan "Link Anti-Theft" atau "Perlindungan Hotlink". Umumnya, mereka boleh diaktifkan dengan satu klik.
4. Tambah gambar watermark atau gambar kecil ke gambar
Ini bukan rantai anti-kecurian teknikal, tetapi ia dapat mengurangkan nilai rantaian kecurian. Sebagai contoh, banyak laman web terlebih dahulu menambah versi termampat atau watermark sebelum memaparkan imej yang besar, yang tidak akan menjejaskan pengalaman pengguna, tetapi juga akan mengurangkan kesediaan orang lain untuk menyalin dan menggunakannya secara langsung.
Sesetengah sistem katil CMS atau gambar menyokong generasi kecil yang dinamik, dan juga boleh digabungkan dengan NGINX atau middleware pemprosesan gambar untuk melakukan operasi penanaman dan operasi air automatik.
Pada dasarnya ini adalah kaedah. Anda boleh memilih satu atau lebih kombinasi berdasarkan persekitaran pelayan anda. Walaupun kecurian pautan tidak dapat dihapuskan sepenuhnya, ia sekurang -kurangnya dapat mengurangkan penggunaan lalu lintas yang tidak perlu.
Atas ialah kandungan terperinci Bagaimana untuk mengelakkan hotlinking imej atau aset lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

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)

TosetupannginxServerBlock, FirstUnderstRuctureUsureUsingTheserverdirectiveWithSettingsLikeListen, Server_name, andlocation; Next, createadirectoryStructureForeforeforeforeforeforeforyoursiteSuchas/var/www/example.com/htmlandSetPerpersmissions;

Untuk menyekat ejen pengguna tertentu, ia boleh dilaksanakan di Nginx, Apache, atau kod (seperti PHP, Python). 1. Dalam nginx, hakim $ http_user_agent oleh jika dan kembali 403; 2. Di Apache, gunakan setenvifnocase dan menafikan untuk menafikan akses; 3. Hakim pengguna-ejen dalam program dan memintas permintaan. UAS biasa yang perlu disekat termasuk python-requests, curl, kosong UA, dan lain-lain. Memilih kaedah yang sesuai dapat mengurangkan trafik sampah dan risiko keselamatan.

Untuk menyediakan fail video MP4 dengan cekap, anda perlu membolehkan permintaan pelbagai byte, mengoptimumkan struktur fail, pengekodan rasional dan pemampatan, dan mengadopsi caching strategik. Pertama, membolehkan permintaan Byte Range (menerima: bytes) untuk menyokong lompatan video, siaran terganggu dan aliran kadar bit adaptif; Kedua, gunakan alat seperti QT-FastStart untuk memindahkan atom Moov ke permulaan fail untuk mencapai bermain bawah; Ketiga, gunakan pengekodan H.264/H.265, dengan munasabah menetapkan kadar bit dan membolehkan pengekodan dua lulus untuk mengurangkan saiz fail sambil memastikan kualiti; Akhirnya, dengan menetapkan tajuk kawalan cache jangka panjang dan menggunakan CDN untuk caching tepi, mengurangkan beban pelayan dan meningkatkan kelajuan tindak balas.

Langkah -langkah utama untuk melindungi keselamatan pelayan Nginx termasuk: 1. Konfigurasi sambungan HTTPS yang disulitkan, gunakan Sijil Percuma Let'sEncrypt dan mengkonfigurasi secara automatiknya melalui CertBot, menubuhkan lompatan paksa dan suite penyulitan yang sesuai, dan membolehkan pembaharuan automatik; 2. Mengehadkan keizinan akses, melindungi laluan sensitif melalui kawalan IP dan pengesahan BasicAuth; 3. Matikan kebocoran maklumat, sembunyikan nombor versi, melarang pelayaran direktori, dan menyesuaikan halaman ralat untuk mengurangkan permukaan serangan.

Kegagalan Nginx untuk memulakan biasanya disebabkan oleh kesilapan konfigurasi, konflik pelabuhan, atau isu kebenaran. Mula-mula semak log ralat Nginx, gunakan arahan Sudotail-f/var/log/nginx/error.log untuk melihat maklumat ralat terkini dalam masa nyata; Kedua, uji sintaks fail konfigurasi, jalankan Sudonginx-T untuk memastikan tiada kesilapan sintaks; kemudian sahkan sama ada proses lain menduduki port 80 atau 443, dan gunakan Sudonetstat-Tulpn | grep ': 80 \ |: 443' untuk mengesan dan mengendalikan konflik; Akhirnya sahkan keizinan dan pemilikan fail untuk memastikan bahawa NGINX mempunyai kebenaran untuk mengakses direktori dan fail yang berkaitan.

Bagaimana untuk melaksanakan pengimbangan beban http menggunakan nginx? Jawapannya adalah seperti berikut: 1. Gunakan modul hulu untuk menentukan kumpulan pelayan backend dan hantar permintaan melalui proxy_pass di pelayan atau lokasi; 2. Pengundian sokongan, pengundian wajaran, sambungan minimum dan dasar hashing IP; 3. Anda boleh mengkonfigurasi, sandaran, fail_timeout dan max_fails parameter untuk meningkatkan kestabilan; 4. Selepas mengubah suai konfigurasi, laksanakan sintaks semak NGINX-T dan gunakan Nginx-Sreload untuk berkuatkuasa. Contohnya, struktur konfigurasi asas merangkumi tiga nod backend menggunakan pengundian untuk mengedarkan lalu lintas secara lalai, sementara pengundian berwajaran membolehkan peruntukan permintaan mengikut berat, paling tidak_conn akan menghantar permintaan tersebut

Apabila menggunakan server_name dalam nginx untuk memadankan pelbagai domain atau subdomain, ia boleh dicapai melalui wildcards dan ungkapan biasa. 1. Apabila menggunakan Wildcards, asterisk hanya boleh digunakan untuk permulaan atau berakhir, dan mesti menjadi sempadan label lengkap. Sebagai contoh, .example.com boleh memadankan subdomain peringkat pertama tetapi tidak termasuk domain akar atau subdomain pelbagai peringkat. Jika anda perlu memadankan kedua-dua domain akar dan subdomain peringkat pertama, ia harus ditulis sebagai example.com*.example.com; 2. Apabila menggunakan ungkapan biasa, anda mesti bermula dengan ~, seperti ~^\ w. (Dev | test) $ boleh memadankan nama domain yang berakhir dengan .dev atau .test, dan panggilan menangkap panggilan kumpulan; 3. Keutamaan yang sepadan adalah nama tepat> awalan wildcard terpanjang> akhiran wildcard terpanjang &

Tetapkan pekerja_processes ke auto (iaitu, bilangan teras CPU) untuk memanfaatkan sepenuhnya prestasi pelbagai teras; 2. Tetapkan Worker_Connections (seperti 1024 atau lebih tinggi) mengikut batasan deskriptor fail sistem dan trafik yang diharapkan untuk memastikan bahawa ULIMIT-N cukup besar; 3. Bilangan maksimum sambungan serentak = worker_processes × worker_connections, konfigurasi yang munasabah dapat menyokong ribuan kepada puluhan ribu sambungan, elakkan kesesakan, dan meningkatkan prestasi persekitaran pengeluaran nginx.
