Desejo passar um endereço de email de um formulário da web para um script bash. Estou usando o seguinte regex:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
Isso é suficiente? Ou alguém poderia incorporar uma exploração?
O script é chamado do PHP:
system('/usr/local/bin/script.sh "$email"');
4
Bem feito, mesmo para perguntar. Não vejo potencial de exploração, mas você pode rejeitar alguns endereços de email válidos e aceitar outros inválidos. Ah - e você deve ancorar seu regex .
—
Curinga
@Wildcard De fato, a falta de ancoragem torna o regexp inútil como teste de segurança!
—
Gilles 'SO- stop be evil'
Este poderia ser um endereço de email válido
—
roaima 21/05
"the doctor"@gallifrey.com
. Observe o espaço entre aspas no componente de nome de usuário.
em que ponto você está preocupado com uma exploração? A linha de assunto diz 'bash', assim como a preocupação com a expansão ao passar $ email como um argumento (entre aspas) para script.sh, ou como o script.sh manipula o valor passado ou a severidade do (presumivelmente baseado em PHP ) regex ou ???
—
Jeff Schaller
Não está claro como o regexp é usado dentro do seu script. Para uma boa análise, forneça as partes relevantes do seu script.
—
Jofel