Rumah >Operasi dan penyelenggaraan >Nginx >Panduan konfigurasi keselamatan Nginx untuk mencegah serangan laman web dan akses berniat jahat

Panduan konfigurasi keselamatan Nginx untuk mencegah serangan laman web dan akses berniat jahat

WBOY
WBOYasal
2023-07-04 14:42:325360semak imbas

Panduan konfigurasi keselamatan Nginx untuk mencegah serangan laman web dan akses berniat jahat

Pengenalan:
Dengan perkembangan pesat Internet, isu keselamatan rangkaian telah menarik perhatian lebih dan lebih. Sebagai pentadbir laman web, adalah penting untuk melindungi tapak web anda daripada serangan dan akses berniat jahat. Sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, Nginx menyediakan pelbagai pilihan konfigurasi keselamatan yang boleh membantu kami mengukuhkan keselamatan tapak web kami. Artikel ini akan memperkenalkan beberapa konfigurasi keselamatan Nginx yang biasa digunakan untuk membantu pentadbir tapak web menghalang serangan tapak web dan akses berniat jahat.

1. Hadkan kaedah akses

  1. Larang kaedah HTTP yang tidak selamat
    Secara lalai, Nginx menyokong pelbagai kaedah HTTP, termasuk GET, POST, OPTIONS, dsb. Walau bagaimanapun, beberapa kaedah HTTP mungkin menimbulkan risiko keselamatan, contohnya, kaedah TRACE boleh digunakan untuk serangan skrip silang tapak (XSS). Kami boleh menggunakan arahan "limit_except" Nginx untuk mengehadkan akses kepada kaedah HTTP tertentu.
    Contoh kod:

    location / {
     limit_except GET POST {
         deny all;
     }
    }
  2. Tutup penyenaraian direktori yang tidak perlu
    Jika direktori Nginx tidak mempunyai fail indeks lalai, ia akan memaparkan senarai fail dalam direktori secara automatik, yang mungkin mendedahkan maklumat sensitif. Kita boleh menghalang tingkah laku ini dengan melumpuhkan penyenaraian direktori automatik.
    Contoh kod:

    location / {
     autoindex off;
    }

2. Cegah permintaan dan serangan hasad

  1. Cegah permintaan hasad
    Permintaan hasad termasuk sejumlah besar permintaan, muat naik fail besar, skrip hasad, dsb., yang akan menyebabkan beban pelayan, dsb. terlalu tinggi. Kita boleh menghalang perkara ini daripada berlaku dengan menetapkan had permintaan.
    Contoh kod:

    http {
     limit_req_zone $binary_remote_addr zone=req_limit:10m rate=1r/s;
     
     server {
         location / {
             limit_req zone=req_limit burst=5 nodelay;
             # 其他配置
         }
     }
    }

    Dalam kod di atas, kami menggunakan arahan "limit_req_zone" untuk menentukan kawasan had permintaan dan menetapkan saiz dan kadar had (sehingga 1 permintaan sesaat dibenarkan). Kemudian, gunakan arahan "limit_req" dalam konfigurasi "pelayan" yang sepadan untuk menggunakan zon had.

  2. Cegah serangan biasa
    Nginx menyediakan beberapa pilihan konfigurasi untuk menghalang serangan biasa secara lalai, seperti:
  3. Cegah serangan limpahan penimbal: proxy_buffer_size dan proxy_buffers pilihan konfigurasiproxy_buffer_sizeproxy_buffers 配置选项
  4. 防止HTTP请求头过大攻击:large_client_header_buffers 配置选项
  5. 防止URI长度过大攻击:large_client_header_buffers 配置选项
  6. 防止恶意请求:client_max_body_size 配置选项
  7. 防止DDoS攻击:limit_connlimit_req 配置选项

三、使用HTTPS保证数据传输安全

HTTPS协议可以保证数据传输的机密性和完整性,防止数据被窃取或篡改。使用HTTPS可以防止中间人攻击、数据劫持等安全问题。我们可以使用Nginx提供的SSL模块来配置HTTPS。
示例代码:

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    location / {
        # 其他配置
    }
}

上述代码中,我们使用listen 443 ssl指令来监听443端口,并使用ssl_certificatessl_certificate_key

Cegah serangan dengan pengepala permintaan HTTP yang terlalu besar: large_client_header_buffers Pilihan konfigurasi


Cegah serangan dengan panjang URI yang terlalu besar: large_client_header_buffers Pilihan konfigurasi

🎜Cegah permintaan_client_max_code>hasad: large_client_header_buffers /code > Pilihan konfigurasi 🎜🎜Cegah serangan DDoS: limit_conn dan limit_req Pilihan konfigurasi 🎜🎜🎜3 Gunakan HTTPS untuk memastikan keselamatan penghantaran data 🎜🎜Protokol HTTPS boleh memastikan kerahsiaan penghantaran data dan integriti untuk mengelakkan data daripada dicuri atau diganggu. Menggunakan HTTPS boleh menghalang isu keselamatan seperti serangan man-in-the-middle dan rampasan data. Kita boleh menggunakan modul SSL yang disediakan oleh Nginx untuk mengkonfigurasi HTTPS. 🎜Contoh kod: 🎜rrreee🎜Dalam kod di atas, kami menggunakan perintah listen 443 ssl untuk mendengar port 443 dan menggunakan ssl_certificate dan ssl_certificate_key kod> pilihan konfigurasi Tentukan laluan sijil SSL. 🎜🎜Kesimpulan: 🎜Artikel ini memperkenalkan beberapa pilihan konfigurasi keselamatan Nginx yang biasa digunakan, termasuk menyekat kaedah akses, mencegah permintaan dan serangan berniat jahat, menggunakan HTTPS untuk memastikan keselamatan penghantaran data, dsb. Sudah tentu, terdapat banyak pilihan lain untuk konfigurasi keselamatan Nginx, yang boleh dikonfigurasikan sewajarnya untuk situasi yang berbeza. Sebagai pentadbir laman web, kami perlu memberi perhatian yang teliti terhadap isu keselamatan tapak web dan terus mengukuhkan konfigurasi keselamatan untuk melindungi tapak web daripada serangan dan ancaman akses berniat jahat. 🎜

Atas ialah kandungan terperinci Panduan konfigurasi keselamatan Nginx untuk mencegah serangan laman web dan akses berniat jahat. 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