Reka bentuk seni bina keselamatan Nginx: menghalang serangan suntikan CSRF, XSS dan SQL

王林
Lepaskan: 2023-06-10 11:27:10
asal
1804 orang telah melayarinya

Dengan perkembangan Internet yang berterusan, aplikasi web semakin digunakan secara meluas. Mereka memainkan peranan penting dalam bidang yang berbeza dan aplikasi ini menyediakan akses mudah kepada pengguna tetapi pada masa yang sama menjadikan aplikasi ini sebagai sasaran penggodam dan kebocoran data. Oleh itu, keselamatan aplikasi web telah menjadi lebih penting berbanding sebelum ini. Artikel ini akan memperkenalkan cara menggunakan Nginx untuk membina aplikasi web selamat dan mencegah serangan suntikan CSRF, XSS dan SQL.

  1. Serangan CSRF

Serangan pemalsuan permintaan silang tapak (CSRF) ialah kaedah serangan yang mengeksploitasi pengesahan pengguna untuk menembusi aplikasi web dengan mengeksploitasi keupayaan mangsa untuk mengesahkan sesi dalam laman web untuk melakukan tindakan yang tidak dijangka. Oleh itu, penyerang boleh melakukan tindakan menipu seperti menukar kata laluan, memindahkan dana, dsb. tanpa mengetahui kelayakan akaun sebenar mangsa.

Untuk mengelakkan serangan CSRF, adalah disyorkan untuk mengambil langkah biasa berikut:

(1) Gunakan kod pengesahan keselamatan yang tidak dapat diramalkan (Token) untuk mengehadkan sumber permintaan.

(2) Sahkan medan Perujuk HTTP dan paksa sumber permintaan.

Contoh konfigurasi Nginx:

Mula-mula buat fail bernama "/etc/nginx/conf.d/csrf.conf" dan tambah kandungan berikut padanya:

lokasi /csrf {

if ($request_method != 'POST') {
    return 405;
}

# Pre-defined token
set $token "abc123";

if ($http_csrf_token != $token) {
    return 403;
}

# Place the proxied resource here
Salin selepas log masuk

}

Dalam contoh ini, apabila klien menghantar permintaan POST kepada "/csrf", pelayan mengesahkan token yang disediakan dalam pengepala HTTP. Jika token tidak sama dengan token pada pelayan, pelayan mengembalikan ralat 403. Jika token adalah sama, pelayan memproses permintaan dan mengembalikan sumber.

  1. Serangan XSS

Serangan skrip merentas tapak (XSS) ialah kaedah serangan yang mengeksploitasi kelemahan dalam aplikasi web untuk menyuntik skrip berniat jahat untuk menyerang mangsa. Skrip ini biasanya menyuntik fungsi ke dalam penyemak imbas mangsa melalui input teks HTML, serangan suntikan JavaScript dan CSS, dan boleh mencuri maklumat sensitif, mengusik halaman, dsb.

Untuk mengelakkan serangan XSS, adalah disyorkan untuk mengambil langkah biasa berikut:

(1) Sahkan bahawa data yang dimasukkan adalah betul pada bahagian klien, dan elakkan menggunakan fungsi JavaScript yang tidak selamat (seperti sebagai eval).

(2) Sahkan semua input yang dipercayai dan kodkan semua output.

(3) Gunakan pengepala CSP (Dasar Keselamatan Kandungan) untuk mengehadkan sumber sumber yang menerima dan menetapkan elemen halaman.

Contoh konfigurasi Nginx:

Tambah yang berikut pada fail konfigurasi nginx anda:

add_header Content-Security-Policy "default-src 'self';

    script-src 'self' 'unsafe-inline' 'unsafe-eval' 
    https://apis.google.com";
Salin selepas log masuk

Ini akan memberitahu penyemak imbas untuk hanya mempercayai sumber daripada tapak semasa dan API Google Selain itu, ia membenarkan penggunaan skrip sebaris dalam elemen skrip

  1. serangan suntikan SQL menyuntik kod SQL boleh laku ke dalam pangkalan data dengan memanipulasi pertanyaan SQL dalam aplikasi web Melalui kaedah ini, penyerang boleh mencuri maklumat sensitif, memusnahkan pangkalan data, dan juga mengawal seluruh pangkalan data , adalah disyorkan untuk mengambil langkah biasa berikut:

(1) Jangan sekali-kali mempercayai data yang dimasukkan pengguna, sentiasa gunakan pernyataan yang disediakan atau pertanyaan berparameter

(2) Pengguna yang mengakses pangkalan data harus dihadkan daripada melakukan operasi.

(3) Apabila memilih sistem pengurusan pangkalan data, pastikan ia teguh dan tahan terhadap serangan suntikan SQL >Contoh konfigurasi:

Sebelum cuba berinteraksi dengan pangkalan data melalui antara muka web, anda perlu memastikan bahawa semua kelayakan yang diperlukan (nama pengguna, kata laluan, dll.) adalah selamat dan tidak didedahkan pada pelayan web

Untuk perkhidmatan web, anda juga mungkin perlu memasang modul SSL Nginx dan menggunakan HTTPS untuk melindungi penghantaran data sensitif Selain itu, anda boleh menggunakan modul caching Nginx dan tembok api untuk mengehadkan serangan rangkaian dan tingkah laku berniat jahat , anda boleh menghalang serangan suntikan CSRF, XSS dan SQL dengan mudah dan melindungi aplikasi web anda daripada serangan Walaupun tiada satu pun kaedah yang baharu, ia adalah antara yang paling berkesan dalam aplikasi praktikal, dan anda harus mengemas kini dan meningkatkan strategi keselamatan aplikasi web anda dalam. cara yang tepat pada masanya

Atas ialah kandungan terperinci Reka bentuk seni bina keselamatan Nginx: menghalang serangan suntikan CSRF, XSS dan SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan