Dalam beberapa tahun kebelakangan ini, dengan populariti berterusan aplikasi Web dan peningkatan bilangan pengguna, risiko aplikasi Web mengalami serangan rangkaian semakin meningkat. Penggodam mengeksploitasi kelemahan untuk cuba menceroboh dan memusnahkan aplikasi web, yang boleh membawa kepada akibat yang serius seperti kebocoran data, lumpuh pelayan, jangkitan perisian hasad dan kerugian kewangan. Untuk melindungi aplikasi web dan mengurangkan permukaan serangan, Nginx ialah penyelesaian yang sangat baik.
Nginx ialah perisian pelayan web sumber terbuka berprestasi tinggi yang boleh bertindak sebagai pengimbang beban web, pelayan proksi terbalik dan pelayan cache HTTP. Banyak ciri terbina dalam Nginx serta set modul pihak ketiga yang kaya boleh digunakan untuk menyediakan persekitaran yang lebih selamat dan boleh dipercayai. Dalam artikel ini, kami akan membincangkan cara menggunakan Nginx untuk mengamankan aplikasi web dan mengurangkan permukaan serangan.
1. Gunakan HTTPS untuk menyulitkan penghantaran data
Protokol HTTPS boleh menyulitkan penghantaran data untuk memastikan maklumat sensitif tidak akan dicuri dan diganggu oleh penggodam. Jika aplikasi web anda mengendalikan maklumat sensitif (seperti nombor kad kredit, kata laluan, maklumat yang boleh dikenal pasti secara peribadi, dsb.), maka menggunakan HTTPS adalah satu kemestian. Nginx menyediakan cara mudah untuk mengkonfigurasi sijil SSL dan komunikasi yang disulitkan. Anda hanya perlu menambah kod berikut dalam fail konfigurasi Nginx anda:
server { listen 443 ssl; ssl_certificate /path/to/ssl.crt; ssl_certificate_key /path/to/ssl.key; ... }
2. Hadkan akses alamat IP
Menggunakan Nginx anda boleh menyekat alamat IP mana yang boleh mengakses aplikasi web anda dengan mudah. Ini akan membantu mengurangkan risiko serangan siber, kerana penggodam perlu menggunakan alamat IP yang dipercayai untuk mengakses aplikasi anda. Mengkonfigurasi Nginx untuk menyekat akses alamat IP adalah mudah, anda hanya perlu menambah kod berikut pada fail konfigurasi Nginx:
location / { deny all; allow 192.168.1.100; allow 192.168.1.101; ... }
Dalam contoh di atas, anda boleh menambah alamat IP yang dibenarkan akses ke senarai membenarkan . Jika alamat IP tiada dalam senarai, Nginx akan menolak permintaan untuk alamat IP tersebut.
3. Lumpuhkan kaedah HTTP yang tidak diperlukan
Banyak aplikasi web hanya perlu menggunakan kaedah GET dan POST untuk mengendalikan permintaan HTTP, manakala banyak kaedah HTTP lain (seperti PUT, DELETE, CONNECT, dsb. ) Tidak perlu menggunakannya. Melumpuhkan kaedah HTTP yang tidak perlu mengurangkan kerentanan aplikasi web anda terhadap serangan. Untuk melakukan ini, anda boleh menambah kod berikut dalam fail konfigurasi Nginx anda:
if ($request_method !~ ^(GET|POST)$ ) { return 405; }
Dalam contoh di atas, jika kaedah permintaan HTTP bukan GET atau POST, Nginx akan mengembalikan ralat "405 Method Not Allowed" .
4. Gunakan caching untuk mengurangkan beban pelayan
Apabila aplikasi web menghadapi trafik yang tinggi dan permintaan serentak yang tinggi, ia mungkin menyebabkan beban pelayan yang berlebihan, mengakibatkan tindak balas yang perlahan atau lumpuh pelayan. Untuk mengurangkan beban pelayan, anda boleh menggunakan Nginx sebagai pelayan cache HTTP. Apabila pelanggan meminta sumber (seperti imej, video atau fail statik), Nginx boleh cache sumber dan menyediakan versi cache pada permintaan masa hadapan. Untuk mendayakan cache HTTP Nginx, anda hanya perlu menambah kod berikut pada fail konfigurasi Nginx:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m; server { ... location / { proxy_cache my_cache; ... } }
Dalam contoh di atas, anda boleh melaraskan parameter cache HTTP mengikut keperluan anda. Selain itu, Nginx juga menyediakan pelbagai mekanisme caching (seperti fastcgi_cache, uwsgi_cache dan proxy_cache Anda boleh memilih mekanisme caching yang sesuai untuk aplikasi anda mengikut keperluan anda).
5. Gunakan WAF untuk mempertahankan diri daripada serangan
Tembok Api Aplikasi Web (WAF) ialah langkah keselamatan yang direka untuk mengesan dan menyekat trafik HTTP yang berniat jahat. WAF boleh mengesan dan menyekat serangan seperti suntikan SQL, skrip silang tapak (XSS) dan pemalsuan permintaan silang tapak (CSRF). Nginx Plus ialah versi komersial Nginx yang menyediakan fungsi WAF terbina dalam yang boleh mengesan dan menyekat serangan web biasa. Anda boleh menggunakan WAF Nginx Plus untuk melindungi aplikasi web anda.
Kesimpulan
Artikel ini menerangkan cara menggunakan Nginx untuk melindungi aplikasi web anda dan mengurangkan permukaan serangan anda. Keselamatan dan kebolehpercayaan aplikasi web boleh dipertingkatkan dengan menggunakan HTTPS untuk menyulitkan penghantaran data, menyekat akses alamat IP, melumpuhkan kaedah HTTP yang tidak perlu, menggunakan caching untuk mengurangkan beban pelayan dan menggunakan WAF untuk mempertahankan daripada serangan. Dalam persekitaran pengeluaran sebenar, anda harus melaraskan teknologi dan konfigurasi ini mengikut keperluan untuk memastikan keselamatan dan kebolehpercayaan yang optimum.
Atas ialah kandungan terperinci Cara menggunakan Nginx untuk melindungi aplikasi web dan mengurangkan permukaan serangan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!