我想将电子邮件地址从Web表单传递到bash脚本。我正在使用以下正则表达式:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
这够了吗?还是可以嵌入漏洞利用程序?
该脚本是从PHP调用的:
system('/usr/local/bin/script.sh "$email"');
4
做得好,甚至问。我看不到有任何利用潜力,但您可能会拒绝一些有效的电子邮件地址,并接受一些无效的电子邮件地址。哦,您应该锚定正则表达式。
—
通配符
@Wildcard确实,缺乏锚点使得正则表达式无法用作安全测试!
—
吉尔(Gilles)'所以
这可能是有效的电子邮件地址
—
roaima
"the doctor"@gallifrey.com
。请注意用户名组件中带引号的空格。
您在什么时候担心漏洞利用?主题行显示为“ bash”,因此在扩展$ email作为script.sh或(以script.sh处理传递的值的)加引号(或大概基于PHP的严格性)时将扩展作为电子邮件的关注点)正则表达式或???
—
杰夫·谢勒
目前尚不清楚在脚本中如何使用正则表达式。为了进行良好的分析,请提供脚本的相关部分。
—
jofel