回答編集履歴

2

コメントへの回答を追記しました

2019/09/20 06:12

投稿

ockeghem
ockeghem

スコア11701

test CHANGED
@@ -7,3 +7,49 @@
7
7
  まず、確認画面でバリデーションしても、その値をhiddenで引き回している場合は、送信画面へのリクエストを操作して不正なメールアドレスを指定される可能性があります。同じバリデーションを送信画面でも行うことで対策になります。
8
8
 
9
9
  もう一つは、こちらの方が問題ですが、例えば悪い人が私のメールアドレスを知っていたとして、悪人がそのフォームで私のメールアドレスを入力することはできてしまいます。これは防ぐことが難しい問題ですが、「第三者の予期しないアドレス」をどう定義するのかという問題でもあります。一般的には、第三者のメールアドレスが指定できる事自体は許容してしまい、悪用されても大事に至らないようにメール本文側を工夫する(悪用の余地が少ないようにする)ことが多いです。
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ コメントに対する回答を追記します。
18
+
19
+
20
+
21
+ > 1つ目の観点に関しては、hiddenは使っていないのですが、それでも送信画面で再度バリデーションした方がよろしいでしょうか?
22
+
23
+
24
+
25
+ バリデーションするという考え方もありますが、通常はしないと思います。バリデーションしないことによる直接の問題はありません。
26
+
27
+
28
+
29
+ > 確認画面でバリデーションしてても送信画面を表示、確認ボタン(メール送信)押下の段階で攻撃者に不正なアドレス入れられたりするのだろうか?と。。
30
+
31
+
32
+
33
+ おそらくメールアドレス等をセッション変数に格納しているのだと思いますので、以下その前提で回答します。
34
+
35
+ ウェブアプリケーションに脆弱性があれば起こりえます。主にクロスサイトスクリプティング(XSS)脆弱性がある場合にそのような(あるいは類似の)現象が起きる可能性があります。
36
+
37
+
38
+
39
+ > 2つ目の観点に関しては、自分的には「第三者の予期しないアドレス」は、正規の手順で正規の目的のため(店舗に予約する)弊社サイトで予約を行なったユーザの予約確認メール(個人情報記載)が実は予期せず攻撃者のアドレスにも送られてしまうのではないかと考えていました。
40
+
41
+
42
+
43
+ これはクロスサイトスクリプティング(XSS)脆弱性がある場合は起こりえます。ただし、アプリケーションの作りにもよりますが、メールアドレスだけ差し替えることは通常難しく、問い合わせ内容なども含めて上書きすることになるので、メールアドレスを差し替えることによる情報漏えいは起きにくいかと思います。むしろ、クロスサイトスクリプティングそのものを使った情報漏えいの方が可能性が高いです。
44
+
45
+ クロスサイトスクリプティングがある(かもしれない)という前提では、情報をセッション変数で受け渡すよりも、hiddenパラメータで渡した方が攻撃はしにくくなります。セッション変数は情報をサーバー側で覚えているので、その覚えている情報が漏れる可能性があるのに対して、hiddenパラメータの場合は情報を覚えているのはブラウザであり、サーバー側の情報は保持されない(処理が終われば直ちに消える)からです。
46
+
47
+ クロスサイトスクリプティング脆弱性をなくすことが本筋ではありますが、上記に対する緩和策としては、用済みのセッション変数は直ちに削除することや、セッションタイムアウトを短くすることが考えられます。
48
+
49
+
50
+
51
+ > ockeghemさんが例でおっしゃってくださったパターンだと、よく会員制サイトのパスワード変更などをしてパスワード変更完了を告げるメールが届いたときに記載してある「このメールに覚えがない場合は下記URLまでご連絡ください」といった文言があるもののことでしょうか?
52
+
53
+
54
+
55
+ これは直接関係ありません。このメールの意図は、攻撃者がなりすましでパスワードを変更した場合に、「パスワードが変更された」旨を利用者に通知し、利用者が意図したパスワード変更かどうかを確認してもらうためです。なので、メール送信自体は、セキュリティ強化の意図によるもので、このメールにより情報を盗むとか詐欺行為をしたいわけではありません。

1

コメントへの回答を追記しました

2019/09/20 06:12

投稿

ockeghem
ockeghem

スコア11701

test CHANGED
File without changes