Maison >interface Web >js tutoriel >Formulaires, téléchargements de fichiers et sécurité avec node.js et express
Cet article démontre la construction de formulaires HTML sécurisés et fonctionnels dans Node.js et Express, couvrant le GET et la gestion des demandes de poste, la validation des entrées, la désinfection et les téléchargements de fichiers. Explorons le processus étape par étape.
Le traitement du formulaire implique généralement: l'affichage d'un formulaire vide (requête), recevant des données utilisateur (demande de poste), validation côté client et côté serveur, rediffusant le formulaire avec des erreurs (si non valide), traitement des données valides, et rediriger l'utilisateur. La sécurité est primordiale, nécessitant des HTTP, la protection contre les attaques CSRF et XSS et la désinfection des entrées méticuleuses.
Concepts clés:
express-validator
: middleware pour valider et désinfecter les entrées des utilisateurs, empêcher les vulnérabilités de sécurité. csurf
& helmet
: middleware pour la protection CSRF et XSS. multer
: middleware pour la gestion des téléchargements de fichiers en toute sécurité et efficacement. express-flash
: Facilite l'affichage des messages ponctuels après les redirections. Configuration:
Assurer que Node.js (version 8.9.0 ou supérieur) est installé. Le code de démarrage (disponible sur GitHub) fournit une configuration express de base avec les modèles EJS et la gestion des erreurs.
Affichage du formulaire (GET DEMAND):
Une demande de get vers /contact
rend un formulaire de contact (en utilisant contact.ejs
) permettant aux utilisateurs de saisir un message et une adresse e-mail.
Soumission de formulaire (demande de poste):
Le middleware body-parser
est crucial pour accéder aux données du post. Le /contact
Post Route Give Form Soumission:
express-validator
Vérifie les champs requis et le format de messagerie valide. check('message').isLength({ min: 1 }).withMessage('Message is required').trim()
et check('email').isEmail().withMessage('Invalid email').bail().trim().normalizeEmail()
sont des exemples. trim()
et normalizeEmail()
Nettoyez l'entrée. matchedData(req)
récupère les données désinfectées. /
. Sécurité:
csurf
Le middleware génère et valide les jetons CSRF. Téléchargements de fichiers:
multer
Les middleware gère les téléchargements de fichiers. L'attribut enctype
du formulaire doit être défini sur "multipart/form-data"
. multer.memoryStorage()
stores Files téléchargés en mémoire (considérez le stockage du disque pour les fichiers plus grands). La gestion des erreurs et le stockage de fichiers (par exemple, le stockage cloud comme AWS S3) sont des considérations supplémentaires.
Améliorations supplémentaires:
L'article suggère des étapes supplémentaires telles que:
Cette réponse révisée fournit un résumé plus concis et organisé du contenu de l'article, tout en conservant les détails techniques de l'original et en conservant les images dans leur format d'origine.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!