Ich möchte eine E-Mail-Adresse aus einem Webformular an ein Bash-Skript übergeben. Ich verwende den folgenden regulären Ausdruck:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
Ist das ausreichend Oder könnte man einen Exploit einbetten?
Das Skript wird von PHP aufgerufen:
system('/usr/local/bin/script.sh "$email"');
shell
security
regular-expression
php
chris
quelle
quelle
"the doctor"@gallifrey.com
. Beachten Sie das angegebene Leerzeichen in der Benutzernamenkomponente.Antworten:
Sie können die E-Mail-Adresse in PHP bereinigen und validieren. Dies ist schneller und sicherer als das Aufrufen eines Shell-Skripts. Das Aufrufen eines Shell-Skripts mit nicht bereinigten Daten von einem Webdienst fügt nur eine weitere Sache hinzu, die kaputt gehen kann.
Das obige Beispiel wurde anhand von Beispielen auf der PHP.net-Site angepasst .
quelle