現在予約サイトのセキュリティ見直しをしています。
社内に自分以外システム担当がおらず、自分もまだまだ勉強不足経験不足なため、幼稚な質問でしたら申し訳ございません。
~~<機能>
1.一般のユーザが予約フォームに氏名、住所、電話番号等の個人情報と、予約希望日時を入れる
2.確定ボタンを押すと、一般ユーザ、予約された店舗、弊社の管理者アドレスの3カ所に予約された旨を告げるメールが送られる
3.2と同時に、システム内で予約を行なったユーザの入力内容を弊社のDBに登録する
~~
<言語、関数>
PHP7
mb_send_mail()
<質問>
2.で送信先アドレスや、メール本文に1.でユーザが入力した内容を用いますが、エスケープされていません。
POSTで受け取った内容をそのままメールの宛先アドレスや、メール本文に使っています。
途中エンコードしているところはありますが、エスケープはされていません。
これはセキュリティ的には問題ないのでしょうか?
(第三者のアドレスが勝手に挿入されて勝手にメールを受信されたり、メール本文に勝手に不正なスクリプトなどを入れられたりしないのでしょうか?)
ちなみに、3.でユーザ情報をDBに登録する際にはエスケープしてからINSERTしています。
追記1:
<機能>
1.ユーザが個人情報、希望日時を入力すし、「確認画面へ」ボタンを押す
2.バリデーションチェックを行い、不正なら入力画面へ戻る。
正常なら入力内容確認画面を表示する
3.入力内容確認画面で確定ボタンを押すと、一般ユーザ、予約された店舗、弊社の管理者アドレスの3カ所に予約された旨を告げるメールが送られる
4.4と同時に、システム内で予約を行なったユーザの入力内容を弊社のDBに登録する
追記2:
送信するメールはテキストメール
追記3:
確認画面に遷移するタイミングでバリデーションチェックしてれば、Toに第三者の予期しないアドレスが入れられてしまうことはないですか?
よろしくお願いいたします。
回答5件
あなたの回答
tips
プレビュー