Rumah >Operasi dan penyelenggaraan >Nginx >Cara menggunakan Nginx untuk mengukuhkan keselamatan permintaan HTTP

Cara menggunakan Nginx untuk mengukuhkan keselamatan permintaan HTTP

王林
王林asal
2023-08-03 11:01:051735semak imbas

Tajuk: Cara menggunakan Nginx untuk pengerasan keselamatan permintaan HTTP

Pengenalan:
Dengan perkembangan pesat Internet, aplikasi web telah menjadi salah satu sasaran utama serangan rangkaian. Untuk memastikan keselamatan data pengguna, kami perlu mengambil beberapa siri langkah untuk mengukuhkan pelayan web kami. Artikel ini akan memberi tumpuan kepada cara menggunakan Nginx untuk mengukuhkan keselamatan permintaan HTTP, dan menyediakan contoh kod untuk rujukan pembaca.

1. Pasang Nginx:
Pertama, kita perlu memasang Nginx. Dalam persekitaran Linux, anda boleh menggunakan arahan berikut untuk memasang:

sudo apt-get update
sudo apt-get install nginx

Selepas pemasangan selesai, mulakan perkhidmatan Nginx:

sudo service nginx start

2. Konfigurasikan protokol HTTPS:
Untuk memastikan keselamatan penghantaran data, sebelum melakukan pengerasan permintaan HTTP, kami memerlukan Konfigurasi protokol HTTPS. Kami boleh mendayakan HTTPS dengan memohon sijil SSL percuma. Berikut ialah contoh kod untuk mengkonfigurasi Nginx untuk menyokong HTTPS:

server {
    listen 443 ssl;
    server_name example.com;
   
    ssl_certificate /etc/nginx/cert/server.crt;
    ssl_certificate_key /etc/nginx/cert/server.key;
   
    location / {
        ...
    }
}

Sila ambil perhatian bahawa laluan sijil dalam contoh di atas perlu diubah suai mengikut situasi sebenar.

3 Gunakan HTTP untuk mengehadkan kaedah permintaan:
Untuk menghalang penyerang daripada menggunakan kaedah HTTP tertentu untuk menyerang pelayan, kami boleh menggunakan arahan "limit_except" Nginx untuk mengehadkan hanya kaedah HTTP tertentu untuk mengakses pelayan. Berikut adalah contoh kod:

location / {
    limit_except GET POST {
        deny all;
    }
    ...
}

Kod sampel di atas hanya akan membenarkan kaedah GET dan POST untuk mengakses pelayan, semua kaedah lain akan dinafikan.

4. Tetapkan had saiz permintaan:
Untuk mengelakkan penyerang daripada menghantar sejumlah besar permintaan, menyebabkan beban pelayan yang berlebihan atau penolakan perkhidmatan, kami boleh menetapkan had saiz permintaan. Berikut ialah kod sampel:

client_max_body_size 10m;
client_body_buffer_size 128k;

Kod sampel di atas akan menetapkan saiz maksimum badan permintaan kepada 10MB dan menetapkan saiz penimbal kepada 128KB.

5. Dayakan protokol penyulitan SSL:
Dayakan protokol penyulitan SSL untuk melindungi keselamatan permintaan HTTP. Berikut ialah kod sampel:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

Kod sampel di atas akan mendayakan protokol TLSv1.2 dan TLSv1.3 serta melumpuhkan algoritma tidak selamat.

6. Dayakan pengepala keselamatan HTTP:
Menggunakan pengepala keselamatan HTTP yang sesuai boleh menghalang banyak serangan biasa. Berikut ialah contoh kod:

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";

Kod sampel di atas akan membolehkan pengepala X-Frame-Options, X-XSS-Protection dan X-Content-Type-Options untuk meningkatkan keselamatan aplikasi web anda.

Kesimpulan:
Dengan menggunakan kaedah di atas, kita boleh mengukuhkan keselamatan permintaan HTTP melalui Nginx. Mengkonfigurasi protokol HTTPS, menyekat kaedah HTTP, menetapkan had saiz permintaan, mendayakan protokol penyulitan SSL dan pengepala keselamatan HTTP dengan berkesan boleh menghalang serangan web dan memastikan keselamatan data pengguna. Pembaca boleh mengkonfigurasinya dengan sewajarnya mengikut keperluan mereka sendiri dan mengoptimumkannya berdasarkan situasi sebenar.

Rujukan:

  • Dokumentasi Nginx: https://nginx.org/en/docs/
  • Amalan Terbaik Keselamatan Nginx: https://www.nginx.com/blog/preventing-a-nginx-hack/

Atas ialah kandungan terperinci Cara menggunakan Nginx untuk mengukuhkan keselamatan permintaan HTTP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn