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.
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.
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!