Rumah > Artikel > Operasi dan penyelenggaraan > Keselamatan WebSockets dengan proksi terbalik Nginx
Dengan pembangunan berterusan Internet dan pengembangan aplikasi, WebSockets telah menjadi bahagian penting dalam banyak aplikasi web. Protokol WebSockets ialah protokol komunikasi dua hala yang boleh mengurangkan kependaman aplikasi dan penggunaan lebar jalur. Walau bagaimanapun, isu keselamatan selalunya tidak dapat dielakkan apabila menggunakan protokol WebSockets. Penyerang berniat jahat boleh menyerang aplikasi web dengan memalsukan permintaan WebSockets. Proksi terbalik Nginx ialah perisian pelayan web yang popular Artikel ini akan membincangkan cara mengamankan WebSockets melalui proksi terbalik Nginx.
Protokol WebSockets ialah protokol berasaskan TCP yang boleh mencapai komunikasi dua hala. Berbanding dengan protokol HTTP, protokol WebSockets mempunyai kependaman yang lebih rendah dan penggunaan lebar jalur yang lebih sedikit, jadi ia digunakan secara meluas dalam aplikasi yang memerlukan prestasi masa nyata yang tinggi. Kitaran komunikasi protokol WebSockets dibahagikan kepada dua bahagian: jabat tangan dan penghantaran data.
Proses jabat tangan adalah sebahagian daripada WebSockets, yang diselesaikan melalui protokol HTTP. Proses jabat tangan WebSockets menggunakan kaedah HTTP GET Pelanggan perlu menghantar permintaan dengan pengepala naik taraf (Naik taraf) dan kunci jabat tangan (Sec-WebSocket-Key) ke pelayan. Selepas pelayan menerima permintaan, ia perlu menukar protokol daripada protokol HTTP kepada protokol WebSockets. Selepas jabat tangan selesai, penghantaran data akan dikawal oleh protokol WebSockets.
Apabila menggunakan protokol WebSockets, isu keselamatan selalunya tidak dapat dielakkan. Penyerang boleh menyerang aplikasi web dengan memalsukan permintaan WebSockets. Berikut adalah kemungkinan serangan.
Serangan 2.1 XSS
Dalam WebSockets, penghantaran data adalah dua arah. Memandangkan penyemak imbas sering menganggap data yang digemakan oleh WebSockets sebagai kod HTML, serangan XSS harus dielakkan semasa memproses data WebSockets. Jika aplikasi web tidak menapis dan melepaskan data input dan output dengan betul, penyerang boleh memindahkan kod skrip daripada pelayan kepada klien melalui WebSockets, dan kemudian melakukan serangan palsu melalui penyemak imbas klien.
2.2 Serangan CSRF
Memandangkan protokol WebSockets boleh menghantar data secara langsung, penyerang boleh memalsukan permintaan WebSockets dengan menyuntik kod hasad ke dalam halaman. Kaedah serangan ini dipanggil serangan pemalsuan permintaan silang tapak (CSRF). Penyerang boleh melakukan operasi berniat jahat dengan memalsukan permintaan WebSockets berniat jahat dan mensimulasikan permintaan pengguna.
2.3 serangan DOS
Dalam WebSockets, memandangkan data dihantar dalam aliran, ia mungkin tertakluk kepada serangan DOS. Penyerang boleh terus menghantar paket yang tidak sah, dengan itu menduduki lebar jalur dan sumber pelayan. Ini boleh menyebabkan masalah prestasi apabila pelayan mengendalikan permintaan WebSockets.
Untuk melindungi keselamatan WebSockets, satu siri langkah perlu diambil dan proksi terbalik Nginx adalah sangat popular pilihan. Berikut adalah langkah yang digunakan oleh proksi terbalik Nginx untuk mengamankan WebSockets.
3.1 Penapisan WAF
Melaksanakan Tembok Api Aplikasi Web (WAF) boleh menapis kelemahan dan serangan keselamatan, membantu mengenal pasti dan menyekat serangan XSS dan serangan CSRF. WAF boleh melindungi keselamatan aplikasi web dengan memantau sumber dan destinasi trafik, mengesan saiz dan struktur paket, dan menapis kandungan tindak balas.
3.2 Kawalan Akses
Untuk mengelakkan serangan DOS, anda boleh mengawal akses kepada WebSockets dengan mengehadkan alamat IP. Dalam Nginx, anda boleh menggunakan modul ip_hash untuk menentukan alamat IP untuk menyekat akses WebSockets.
3.3 SSL dan TLS
Menggunakan protokol penyulitan (seperti SSL dan TLS) boleh memastikan penghantaran data yang selamat semasa komunikasi WebSockets. SSL dan TLS melindungi data WebSockets melalui kunci penyulitan antara pelayan dan klien. Dalam Nginx, anda boleh menggunakan modul ssl untuk melaksanakan SSL dan TLS.
Keselamatan protokol WebSockets boleh dikekalkan melalui proksi terbalik Nginx. Apabila melaksanakan WebSockets, langkah keselamatan yang sesuai mesti diambil untuk melindungi aplikasi web. Apabila melindungi keselamatan WebSockets, adalah perlu untuk meningkatkan keselamatan WebSockets melalui langkah-langkah seperti penapisan WAF, kawalan akses dan protokol penyulitan.
Atas ialah kandungan terperinci Keselamatan WebSockets dengan proksi terbalik Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!