Я хочу передать адрес электронной почты из веб-формы скрипту bash. Я использую следующее регулярное выражение:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
Достаточно ли этого? Или можно было внедрить подвиг?
Скрипт вызывается из PHP:
system('/usr/local/bin/script.sh "$email"');
4
Хорошо сделано даже для того, чтобы спросить. Я не вижу возможности использовать эксплойт, но вы можете отказаться от некоторых действительных адресов электронной почты и принять некоторые недействительные. Ох, и вы должны закрепить свое регулярное выражение .
—
Wildcard
@Wildcard Действительно, отсутствие привязки делает регулярное выражение бесполезным в качестве теста безопасности!
—
Жиль "ТАК - перестань быть злым"
Это может быть действительный адрес электронной почты
—
Ройма
"the doctor"@gallifrey.com
. Обратите внимание на кавычки в компоненте имени пользователя.
в какой момент вы беспокоитесь о подвиге? В строке темы написано 'bash', поэтому проблема заключается в расширении при передаче $ email в качестве (цитируемого) аргумента в script.sh, или обработке script.sh переданного значения, или строгости (предположительно на основе PHP). ) регулярное выражение или ???
—
Джефф Шаллер
Не ясно, как регулярное выражение используется внутри вашего сценария. Для хорошего анализа, пожалуйста, предоставьте соответствующие части вашего сценария.
—
Джофель