Je souhaite transmettre une adresse e-mail d'un formulaire Web à un script bash. J'utilise l'expression régulière suivante:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
Est-ce suffisant? Ou pourrait-on intégrer un exploit?
Le script est appelé depuis PHP:
system('/usr/local/bin/script.sh "$email"');
"the doctor"@gallifrey.com
. Notez l'espace cité dans le composant nom d'utilisateur.Réponses:
Vous pouvez nettoyer et valider l'adresse e-mail en PHP, ce qui sera plus rapide et plus sûr que d'appeler un script shell. L'appel d'un script shell avec des données non-désinfectées à partir d'un service Web ne fera qu'ajouter une autre chose qui peut casser.
Exemple ci-dessus adapté d' exemples sur le site PHP.net .
la source