質問: ユーザがフォームに入力した文字列を、例えば以下のように echo ${入力文字列} | mail -s 'タイトル' 宛先@yahoo.co.jp などとして送る場合、意図しない危険な文字列が入力されるような気がしてなりません(XSSに似た脆弱性があるような気がします。知識不足で申し訳ないです。) ユーザの入力した文字列を上記のコマンドで送信したいのですが、入力文字列をhtmlspecialcharsのような安全な文字列に変換する方法はありませんか? また、上記のコマンドで考えられる危険性などあれば教えていただきたいです。
回答: otnさんの回答で言い尽くされているのですが、敢えて指摘いたしますと、なぜmailコマンドでメール送信する必要があるのでしょうか? PHPのmail関数あるいはmb_send_mail関数を使ったほうが安全かと思います。その場合でも、内部的には sendmailコマンドが呼ばれるのですが、直接mailコマンドを呼ぶよりは安全です。