Webフォームからbashスクリプトに電子メールアドレスを渡したいのですが。次の正規表現を使用しています。
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}/
これで十分ですか?または、エクスプロイトを埋め込むことができますか?
スクリプトはPHPから呼び出されます。
system('/usr/local/bin/script.sh "$email"');
4
質問してもうまくいきました。悪用の可能性はありませんが、有効なメールアドレスを拒否して、無効なメールアドレスを受け入れる場合があります。ああ、そしてあなたはあなたの正規表現を固定するべきです。
—
ワイルドカード2016年
@Wildcard確かにアンカーの欠如は、正規表現をセキュリティテストとして役に立たなくします。
—
Gilles「SO-邪悪なことをやめよ」
これは有効なメールアドレスである可能性があります
—
roaima 2016年
"the doctor"@gallifrey.com
。ユーザー名コンポーネントの引用符で囲まれたスペースに注意してください。
エクスプロイトについてどの時点で心配していますか?件名には「bash」と書かれているので、$ emailを(引用符で囲まれた)引数としてscript.shに渡すときの拡張や、渡された値のscript.shの処理、または(おそらくPHPベースの)正規表現、または???
—
Jeff Schaller
スクリプト内で正規表現がどのように使用されているかは明らかではありません。良い分析のために、スクリプトの関連部分を提供してください。
—
jofel 2016年