Rumah > hujung hadapan web > tutorial js > Langkah-langkah untuk Mencegah Serangan Man-in-the-Middle (MitM) dalam Aplikasi JavaScript

Langkah-langkah untuk Mencegah Serangan Man-in-the-Middle (MitM) dalam Aplikasi JavaScript

PHPz
Lepaskan: 2024-07-23 18:21:13
asal
1039 orang telah melayarinya

Steps to Preventing Man-in-the-Middle (MitM) Attacks in JavaScript Applications

Serangan 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
Salin selepas log masuk

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');
});

Salin selepas log masuk

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');
});

Salin selepas log masuk

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');
});

Salin selepas log masuk

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');
});

Salin selepas log masuk

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']
  }
}));

Salin selepas log masuk

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();
});

Salin selepas log masuk

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
}));

Salin selepas log masuk

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!

sumber:dev.to
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