差出人のメールアドレスには、何でも設定できてしまうようですが、問題は生じないのでしょうか。
まず、差出人のメールアドレスを決めるのはコンタクトフォームの作成者ですので、「何でも設定できてしまう」ようにするかどうかも作成者の設定によります。
Q1.悪意を持った方が、他人を装ってメールを送信できてしまうということでしょうか。
コンタクトフォームの設定によっては可能です。
Q2.逆に、自分の所有するメールアドレスを差出人に正しく記入しているにもかかわらず、SPAMメールとして受信側で扱われ、メールが届かない事態にならないのでしょうか。
その可能性はあります。ただしこれは使われるスパムフィルタリングのシステム次第だということをご理解ください。システムによっては内容に関係なくスパムとして誤判断することがありますし、メールアドレスだけでなく送信元 IP アドレスなどの環境情報から総合的に判断するシステムであれば比較的にこういった事態にはなりにくいでしょう。
Miyoshi様、
ご回答ありがとうございます。
そうなんですか・・・ということは、下記のようなことができる、のでしょうか。
●やりたいこと
今回、Contact Form 7の機能を使い、メンバー登録をする仕組みを作ろうとしています。
ユーザーが必要な情報を入力し送信すると、それに対して、Contact Form 7の送信前のロジックをカスタマイズして、メンバーIDを生成し、ユーザーの指定メールへ返送します。
こちらからのメールへのユーザーからの質問は、別に設置した「お問い合わせ」の窓口からに振りたいと考えています。その旨は、こちらのメールに記述しますが、それでも、ユーザーがこちらの送信メールへの返信として、質問される場合があると思います。それを避けるため、下記のようにしようと考えています。
●実装:
Contact Form 7 の差出人アドレスには、あえて存在しないアカウント名を指定し、ユーザーがあやまって返信してきた場合に、エラーが返るようにしたいと思っています。
たとえば、差出人アドレスに ”noreply@xxxxx.co.jp” などと設定します。xxxxx.co.jpのドメインは、こちらが所有するものですが、”noreply” というアカウントは存在しません。
●質問
上記のような実装と運用ができる、という理解でよいでしょうか。
あるいは、netの世界常識からして、上記のような実装は、不作法になるので避けた方がよいでしょうか。 WordPressの話題から脱線してしまって申し訳ありませんが、アドバイスをいただけると助かります。
よろしくお願いいたします。
ユーザー登録フォームとして Contact Form 7 を使いたいという話だと思いますが、それはもう本来の問い合わせフォームとしての用途からは大きくかけ離れた話です。技術的には可能ですが、よく理解せずに実現しようとすればたいへん大きなセキュリティホールを作るはめになりかねませんから、別のやり方を考えた方が無難です。
差出人を “noreply” にすること自体の是非については、作法か無作法かはわかりませんが、一般的によく見られるやり方ではあるかと思います。
Takayuki Miyoshi様、
ご回答ありがとうございます。
>よく理解せずに実現しようとすればたいへん大きなセキュリティホールを作るはめ
>になりかねませんから、別のやり方を考えた方が無難です。
わたくしは、PC上のプログラムの経験は長いのでプログラミング自体は、PHPでもそれほど抵抗はありませんが、インタネット上のセキュリティ関連については、知識と経験不足です。
実は、Contact Form 7 のfunctions.phpに主なロジックを実装することにしたのは、自分でフォームを作るよりもリスクが少ない、と思ったからです。
Contact Form 7 の処理にロジック(DBへのアクセスはなく、そのロジックで生成したアウトプットはすべて送信メール上に出力する)を実装することは、セキュリティ的にどのような点で気を付ける必要があるのでしょうか。
実装するロジック自体が解読される恐れがあるのでしょうか。その場合は、PHPで書く限りどこに書いても同じリスクである、と思っているのですが・・・。
私の知識レベルとしては、PHPとWordPressの入門書を読み、内容を理解したつもりのレベルです。実践経験はなく、今回、Homepageを作成するのも、はじめてです。2週間ほどで、一応イベントフィルターにより、やりたい機能をトラップして、実装を完了できていますが、実践経験が全くないので、ご指摘されると非常に不安です。
申し訳ありませんが、できれば、Contact Form 7のロジックのカスタマイズにおいて、具体的にどのような点について気を付ける必要があるのか教えていただけると助かります。
よろしくお願いいたします。
実は、Contact Form 7 のfunctions.phpに主なロジックを実装することにしたのは、自分でフォームを作るよりもリスクが少ない、と思ったからです。
Contact Form 7 の処理、動作を完全に理解している方にとってはこの想定は正しいでしょうが、そうでない場合は自分でフォームから作った方がリスクは小さくなると思います。
全体を把握しないままコードを書くこと自体が最大のリスク要因です。
Miyoshiさん、アドバイスありがとうございます。ご指摘のとおり、わからないのにContact From 7 のモジュールをいじくり回すのは、問題ですね。
わたしの場合は、Contact Form 7のロジック本体を変更するのではなく、みなさんがよくやっているAdd Filterして、メールを送信する前に、入力データを取得し、それを加工(たとえば、商品数 x 単価 で総額をだすなど)をしてメール本体に記述する程度です。
入力データの処理について、いくつかわからない点がありますので、このフォームにいろいろとご相談させていただくこと思いますが、どうぞよろしくお願いいたします。
貴重がアドバイス、本当に感謝いたします。