STDIN(パイプメール)から件名とリターンパスを取得し、件名を使用してカスタムcurlクエリを実行する簡単なスクリプトがあります。
#!/usr/bin/env bash
# Check for the sender email address and subject.
# Assign them to variables for use later.
while read -r key value; do
case $key in
Subject:) subject=$value;;
Return-Path:) return_path=$value;;
esac
done
# Run a curl query utilizing a modified version of the subject (replacing spaces with plus symbols)
curl "https://foo.com/&q="${subject// /+}"" >> foo.txt
しかし、私の懸念は、これが次のような問題のあるサブジェクトヘッダーの悪意のある(または偶発的な)使用のための穴を残すことです。rm -fr /;
これを防ぐ簡単な方法はありますか?
これが漠然とした質問である場合は、お詫び申し上げます。私はスクリプトを初めて使用するので、スクリプトの強化/サニタイズに関する知識は非常に限られています。初心者向けの参考資料があれば教えてください。
アップデート。改訂されたスクリプトは次のとおりです。
#!/usr/bin/env bash
# Check for the sender email address and subject.
# Assign them to variables for use later.
while read -r key value; do
case $key in
Subject:) subject="$value";;
Return-Path:) return_path="$value";;
esac
done
# Run a curl query utilizing a modified version of the subject (replacing spaces with plus symbols)
curl "https://foo.com/&q=\"${subject// /+}\"" >> foo.txt