¿Es posible explotar el parámetro del script bash?

¿Es posible explotar el parámetro del script bash?

Quiero pasar una dirección de correo electrónico desde un formulario web a un script bash. Estoy usando la siguiente expresión regular:

/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/

¿Es esto suficiente? ¿O se podría incorporar un exploit?

El script se llama desde PHP:

system('/usr/local/bin/script.sh "$email"');

Respuesta1

Puede desinfectar y validar la dirección de correo electrónico en PHP, lo que será más rápido y seguro que llamar a un script de shell. Llamar a un script de shell con datos no desinfectados desde un servicio web solo agregará otra cosa más que puede fallar.

$sanitized_email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_email, FILTER_VALIDATE_EMAIL)) {
    echo "This sanitized email address is considered valid.\n";
    echo "Before: $email\n";
    echo "After:  $sanitized_email\n";    
} else {
    echo "This sanitized email address is considered invalid.\n";
}

Ejemplo anterior adaptado deejemplos en el sitio PHP.net.

información relacionada