質問: PHPでメールフォームを作成しています。 以下質問させて下さい。 1.WEBサイトからメールサービスへの通信について、セキュリティ対策する必要は ありますでしょうか。WEB画面については以下対策を行っております。 ・クロスサイトスクリプティング(XSS) ・クロスサイトリクエストフォージェリ(CSRF) ・クリックジャッキング 2.1つ1つセキュリティ対策をするよりも、既に存在するメール送信ライブラリを 使用したほうが良いとの回答を見ました。 これはライブラリを使用すれば、個々のセキュリティ対策の実装は不要 ということでしょうか。 今のところライブラリは、PhpMailerを使用予定です。 【補足】 ・PHPMailerがサポートしているセキュリティ対策は調べてみましたが、 見つける事ができませんでした。 ・作成するメールフォームは、送信先は固定でPHPソース内にべた書きする予定です。
回答: メールフォームは、一般的な Web アプリと違い、以下のような特徴を持ちます。 ・個人認証を行わない状態で使用することが多い ・スパムの発射台として利用されると被害が大きい ・メールという別アプリケーションを使用するため、そちらの知識が必須 最低限、上記を満たすメールフォームの機能は以下のとおりです。 ・連続投稿対策 ・外部からの直接投稿対策 ・メールアドレスの実在検証 これに加えて ・送信サーバのセキュアな設定 も必要となります。 メールフォームは、きちんとセキュリティ要件を整理しておかないと他人に対して迷惑をかけてしまいます。 この要件定義のハードルはそれほど低くありません。 実際の攻撃を知っていないと対策できないですし、オープンにされた情報は少ないです。 また、アプリケーションをまたいだ要件対応が必要となるため、ライブラリでは対応はできません。容易に実装するのであれば、自身の必要とする要件をきちんと定義し、送信サーバを含むメールフォームの SaaS を比較して導入することをオススメします。 メールフォームに関しての学習をしたいと言うことであれば、まずはメールの仕組みから学習してください。どちらかと言うと、送信サーバをセキュアに保つことのほうが、闇が深いことに気がつけると思います。 で、送信サーバがセキュアに保てた後の話になりますが、メールフォームに関して、包括的な実践ライブラリは見たことがないです。連続投稿対策がネックになっており、こちらは自前で実装する必要があります。 あまり参考になる情報はありませんが、私は匿名掲示板の要件を参考にしました。 いろいろ書きましたが、自動返信を行わなければ、かなり楽ができます。 参考まで。