Rumah > hujung hadapan web > tutorial js > Borang, muat naik fail dan keselamatan dengan node.js dan ekspres

Borang, muat naik fail dan keselamatan dengan node.js dan ekspres

William Shakespeare
Lepaskan: 2025-02-10 12:52:12
asal
924 orang telah melayarinya

Artikel ini menunjukkan borang HTML yang selamat dan berfungsi dalam Node.js dan Express, Covering Get dan Pengendalian Permintaan Pos, Pengesahan Input, Sanitisasi, dan Muat Naik Fail. Mari kita meneroka proses langkah demi langkah.

Forms, File Uploads and Security with Node.js and Express

Borang pengendalian biasanya melibatkan: memaparkan borang kosong (mendapatkan permintaan), menerima data pengguna (permintaan pos), pengesahan sisi klien dan pelayan, memaparkan semula borang dengan kesilapan (jika tidak sah), memproses data yang sah, dan mengalihkan pengguna. Keselamatan adalah yang paling penting, memerlukan HTTPS, perlindungan terhadap serangan CSRF dan XSS, dan sanitisasi input yang teliti.

Forms, File Uploads and Security with Node.js and Express

Konsep Utama:

    ekspres & node.js:
  • asas untuk membina permohonan web dan permintaan pengendalian.
  • : middleware untuk mengesahkan dan membersihkan input pengguna, mencegah kelemahan keselamatan.
  • express-validator
  • &
  • : middleware untuk perlindungan CSRF dan XSS. csurf helmet
  • : middleware untuk mengendalikan fail memuat naik dengan selamat dan cekap.
  • multer
  • : memudahkan memaparkan mesej satu kali selepas pengalihan.
  • express-flash
Persediaan:

Pastikan node.js (versi 8.9.0 atau lebih tinggi) dipasang. Kod starter (boleh didapati di GitHub) menyediakan persediaan asas ekspres dengan templat EJS dan pengendalian ralat.

memaparkan borang (mendapatkan permintaan):

Permintaan GET ke

membuat borang hubungan (menggunakan

) yang membolehkan pengguna memasukkan mesej dan alamat e -mel. /contact contact.ejs

penyerahan bentuk (permintaan pos):

middleware adalah penting untuk mengakses data pos.

laluan pos mengendalikan penyerahan borang:

body-parser /contact

Pengesahan:
  • cek untuk medan yang diperlukan dan format e -mel yang sah. dan adalah contoh. express-validator check('message').isLength({ min: 1 }).withMessage('Message is required').trim() check('email').isEmail().withMessage('Invalid email').bail().trim().normalizeEmail() sanitisasi:
  • dan membersihkan input. mengambil data yang dibersihkan. trim() normalizeEmail() matchedData(req) pengendalian ralat:
  • Jika pengesahan gagal, borang tersebut disampaikan semula dengan kesilapan dan data yang dikemukakan.
  • Kejayaan:
  • Jika sah, data dilog masuk (pertimbangkan untuk menghantar e -mel atau penyimpanan pangkalan data), mesej kilat ditetapkan, dan pengguna diarahkan ke
  • . / Keselamatan:
  • https: Sentiasa gunakan https untuk penghantaran data selamat.
  • Helmet middleware: Menambah tajuk keselamatan.
  • Perlindungan CSRF: Middleware menjana dan mengesahkan token CSRF. csurf
  • Perlindungan XSS:
  • mekanisme melarikan diri EJS melindungi terhadap serangan XSS.
Muat naik fail:

Middleware mengendalikan muat naik fail. Atribut

borang mesti ditetapkan ke multer. enctype menyimpan fail yang dimuat naik dalam ingatan (pertimbangkan penyimpanan cakera untuk fail yang lebih besar). Pengendalian ralat dan penyimpanan fail (mis., Untuk penyimpanan awan seperti AWS S3) adalah pertimbangan tambahan. "multipart/form-data" multer.memoryStorage()

Penambahbaikan lebih lanjut:

Artikel mencadangkan langkah -langkah tambahan seperti:

menghantar e -mel menggunakan nodemailer.
  • data berterusan ke pangkalan data.
  • Melaksanakan pengendalian muat naik fail yang lebih mantap (penyimpanan sementara, paparan kecil, penyingkiran fail sisi pelanggan).
  • Respons yang disemak ini memberikan ringkasan yang lebih ringkas dan teratur mengenai kandungan artikel, sambil mengekalkan butiran teknikal asal dan mengekalkan imej dalam format asalnya.

Atas ialah kandungan terperinci Borang, muat naik fail dan keselamatan dengan node.js dan ekspres. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan