shell – 可以在bash脚本参数中利用漏洞吗?

我想将Web表单中的电子邮件地址传递给bash脚本.我正在使用以下正则表达式:

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

这够了吗?或者可以嵌入漏洞?

该脚本是从PHP调用的:

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

解决方法:

您可以在PHP中清理和验证电子邮件地址,这比调用shell脚本更快,更安全.使用来自Web服务的未经过处理的数据调用shell脚本只会添加一个可能破坏的东西.

$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";
}

上面的例子改编自examples on the PHP.net site.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...