


Langkah-langkah untuk Mencegah Serangan Man-in-the-Middle (MitM) dalam Aplikasi JavaScript
Jul 23, 2024 pm 06:21 PMSerangan Man-in-the-middle (MitM) menimbulkan ancaman besar kepada keselamatan web. Dalam serangan ini, aktor berniat jahat memintas komunikasi antara pelanggan dan pelayan, membolehkan mereka mencuri dengar, memanipulasi atau mencuri data. Blog ini akan meneroka cara serangan MitM berfungsi dalam konteks aplikasi JavaScript dan menyediakan langkah praktikal untuk melindungi aplikasi anda daripada ancaman ini.
Apakah itu Serangan Man-in-the-Middle?
Serangan Man-in-the-Middle berlaku apabila penyerang memintas dan menyampaikan mesej secara rahsia antara dua pihak yang percaya bahawa mereka sedang berkomunikasi secara langsung antara satu sama lain. Pemintasan ini boleh membawa kepada akses tanpa kebenaran kepada data sensitif, seperti bukti kelayakan log masuk, maklumat kewangan dan butiran peribadi.
Cara Serangan MitM Berfungsi
Serangan MitM boleh dilaksanakan dalam pelbagai cara, termasuk:
1. DNS Spoofing: DNS Spoofing melibatkan mengubah rekod DNS untuk mengubah hala pengguna ke tapak web berniat jahat.
Contoh:
Katakan anda telah menggunakan aplikasi Node.js dan React anda pada xyz.com. Penggodam boleh memanipulasi rekod DNS supaya apabila pengguna cuba melawati xyz.com, mereka diubah hala ke tapak berniat jahat yang kelihatan sama dengan tapak anda.
Langkah-langkah untuk Mencegah Penipuan DNS:
- Gunakan DNSSEC (Sambungan Keselamatan Sistem Nama Domain) untuk menambah lapisan keselamatan tambahan.
- Selalu pantau dan kemas kini rekod DNS anda.
- Gunakan penyedia DNS bereputasi yang menawarkan ciri keselamatan terhadap penipuan DNS.
# Example of enabling DNSSEC on your domain using Cloudflare # Visit your domain's DNS settings on Cloudflare # Enable DNSSEC with a single click
2. Penipuan IP
IP Spoofing melibatkan berpura-pura menjadi alamat IP yang dipercayai untuk memintas trafik rangkaian.
Contoh:
Penyerang boleh memalsukan alamat IP pelayan anda untuk memintas trafik antara pelanggan anda dan pelayan Node.js anda.
Langkah-langkah untuk Mencegah Penipuan IP:
- Laksanakan penyenaraian putih IP untuk hanya membenarkan alamat IP yang dipercayai berkomunikasi dengan pelayan anda.
- Gunakan langkah keselamatan peringkat rangkaian seperti VPN dan tembok api.
- Pastikan pengesahan dan penapisan alamat IP yang betul pada pelayan anda.
// Example of IP whitelisting in Express.js const express = require('express'); const app = express(); const allowedIPs = ['123.45.67.89']; // Replace with your trusted IPs app.use((req, res, next) => { const clientIP = req.ip; if (!allowedIPs.includes(clientIP)) { return res.status(403).send('Forbidden'); } next(); }); // Your routes here app.listen(3000, () => { console.log('Server is running on port 3000'); });
3. Penipuan HTTPS
Penipuan HTTPS melibatkan penciptaan sijil SSL palsu untuk menyamar sebagai tapak web yang selamat.
Contoh:
Penyerang boleh mencipta sijil SSL palsu untuk xyz.com dan menyediakan pelayan berniat jahat yang kelihatan sama dengan pelayan sah anda.
Langkah-langkah untuk Mencegah Penipuan HTTPS:
- Gunakan Ketelusan Sijil untuk memantau dan log semua sijil yang dikeluarkan untuk domain anda.
- Laksanakan HTTP Public Key Pinning (HPKP) untuk mengaitkan kunci awam kriptografi pelayan web anda dengan set tapak web HTTPS tertentu.
// Example of implementing HPKP in Express.js const helmet = require('helmet'); const app = express(); app.use(helmet.hpkp({ maxAge: 60 * 60 * 24 * 90, // 90 days sha256s: ['yourPublicKeyHash1', 'yourPublicKeyHash2'], // Replace with your public key hashes includeSubDomains: true })); // Your routes here app.listen(3000, () => { console.log('Server is running on port 3000'); });
4. Mendengar Wi-Fi
Mendengar Wi-Fi melibatkan memintas data yang dihantar melalui rangkaian Wi-Fi tidak selamat.
Contoh:
Penggodam boleh menyediakan tempat liputan Wi-Fi yang berniat jahat dan memintas data yang dihantar antara pengguna dan pelayan anda apabila mereka menyambung kepadanya.
Langkah-Langkah untuk Mengelakkan Mendengar Wi-Fi:
- Galakkan pengguna untuk hanya menyambung ke rangkaian Wi-Fi yang selamat.
- Laksanakan penyulitan hujung ke hujung (E2EE) untuk melindungi data yang dihantar antara pelanggan dan pelayan.
- Gunakan VPN untuk menyulitkan trafik antara pelanggan dan pelayan anda.
// Example of enforcing HTTPS in Express.js const express = require('express'); const app = express(); app.use((req, res, next) => { if (req.headers['x-forwarded-proto'] !== 'https') { return res.redirect(['https://', req.get('Host'), req.url].join('')); } next(); }); // Your routes here app.listen(3000, () => { console.log('Server is running on port 3000'); });
Mencegah Serangan MitM dalam Aplikasi JavaScript
1. Gunakan HTTPS Di Mana-mana
Pastikan semua komunikasi antara klien dan pelayan disulitkan menggunakan HTTPS. Gunakan alatan seperti Let's Encrypt untuk mendapatkan sijil SSL/TLS percuma.
// Enforce HTTPS in Express.js const express = require('express'); const app = express(); app.use((req, res, next) => { if (req.headers['x-forwarded-proto'] !== 'https') { return res.redirect(['https://', req.get('Host'), req.url].join('')); } next(); }); // Your routes here app.listen(3000, () => { console.log('Server is running on port 3000'); });
2. Sahkan Sijil SSL/TLS
Gunakan pengesahan kukuh untuk sijil SSL/TLS dan elakkan sijil yang ditandatangani sendiri dalam pengeluaran.
3. Laksanakan Dasar Keselamatan Kandungan (CSP)
Gunakan pengepala CSP untuk menyekat sumber dari mana aplikasi anda boleh memuatkan sumber, mengurangkan risiko suntikan skrip berniat jahat.
// Setting CSP headers in Express.js const helmet = require('helmet'); app.use(helmet.contentSecurityPolicy({ directives: { defaultSrc: ["'self'"], scriptSrc: ["'self'", 'trusted.com'], styleSrc: ["'self'", 'trusted.com'] } }));
4. Gunakan Kuki Selamat
Pastikan kuki ditandakan sebagai Secure dan HttpOnly untuk menghalangnya daripada diakses melalui skrip sebelah pelanggan.
// Setting secure cookies in Express.js app.use(require('cookie-parser')()); app.use((req, res, next) => { res.cookie('session', 'token', { secure: true, httpOnly: true }); next(); });
5. Laksanakan HSTS (HTTP Strict Transport Security)
Gunakan HSTS untuk memaksa pelayar berkomunikasi dengan pelayan anda melalui HTTPS sahaja.
// Setting HSTS headers in Express.js const helmet = require('helmet'); app.use(helmet.hsts({ maxAge: 31536000, // 1 year includeSubDomains: true, preload: true }));
Man-in-the-Middle attacks can have devastating consequences for web applications, leading to data theft and injection attacks. By understanding how these attacks work and implementing robust security measures, you can protect your JavaScript applications and ensure the safety of your users' data. Always use HTTPS, validate SSL/TLS certificates, implement CSP, secure cookies, and enforce HSTS to mitigate the risks of MitM attacks.
Atas ialah kandungan terperinci Langkah-langkah untuk Mencegah Serangan Man-in-the-Middle (MitM) dalam Aplikasi JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ganti aksara rentetan dalam javascript

jQuery mendapatkan padding/margin elemen

HTTP Debugging dengan Node dan HTTP-Console

Tutorial Persediaan API Carian Google Custom
