微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐