質問編集履歴
2
6\.としてHTTPS通信の疑問を追加.現在SSLを利用していないことを追加.
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
現在,練習用にログイン型掲示板の制作を模索しています.その中で,Webアプリケーションのセキュリティ知識が不足しているため,いくつかご教授いただければ幸いです.
|
2
2
|
|
3
|
-
ログイン型掲示板として,PHP, phpMyAdmin, MySQLを用いたWebアプリケーション,並行してAPIを作成し,AndroidやiOSのクライアントアプリケーションからリクエストを送信可能にしようと考えております.ユーザをログインに用いるID, Passwordで管理し,送信者が,受信者(複数可)を設定できるようにします.
|
3
|
+
ログイン型掲示板として,PHP, phpMyAdmin, MySQLを用いたWebアプリケーション,並行してAPIを作成し,AndroidやiOSのクライアントアプリケーションからリクエストを送信可能にしようと考えております.ユーザをログインに用いるID, Passwordで管理し,送信者が,受信者(複数可)を設定できるようにします.SSLなしのHTTP通信を考えています.
|
4
4
|
|
5
5
|
0. 一時キーを発行してのメールアドレス認証は安全か.
|
6
6
|
0. POSTリクエストによるユーザ認証は安全か,もっと強固な認証方法はあるか.
|
7
7
|
0. クライアント,サーバ両サイドでのハッシュ処理は妥当か.
|
8
8
|
0. POSTリクエストによる個人情報を含むデータ送信は妥当か.
|
9
9
|
0. URL引数による個人情報を含まないデータ送信は妥当か.
|
10
|
+
0. HTTPS通信の優位性は何か.
|
10
11
|
|
11
|
-
の
|
12
|
+
の6点について,教えていただきたいです.1点でも知識をお貸しください.
|
12
13
|
|
13
14
|
以下,現在の設計を記載します.
|
14
15
|
現在考えているデータテーブルはこのような形です.
|
@@ -75,4 +76,14 @@
|
|
75
76
|
|
76
77
|
個人情報を含まないので,GETリクエストに平文を乗せようと考えております.
|
77
78
|
|
79
|
+
-- 依頼により追加 --
|
80
|
+
|
81
|
+
**6. HTTPS通信の優位性は何か.**
|
82
|
+
|
83
|
+
現在,すべての通信をSSLなしのHTTP通信で行うことを考えております.
|
84
|
+
しかし,SSLなしのHTTP通信は、設定によりGET/POSTリクエストの中身が見えてしまう場合があるとお聞きしました.POSTリクエストはhidden属性によって,第三者から隠すことができる認識でおりましたが,この通りではない状況があるのでしょうか.
|
85
|
+
また,SSLは,ブラウザとサーバ間の通信を暗号化し,その間の通信を盗み見ることを難しくする認識でおりました.これは,GET/POSTリクエストに対してどの程度効果があるのでしょうか.また,SSL+POST(hidden)ならば,その通信は秘匿されると考えてよいのでしょうか.
|
86
|
+
|
87
|
+
-- --
|
88
|
+
|
78
|
-
の
|
89
|
+
の6点について,1点でもいいので,教えていただければ幸いです.どうぞよろしくお願いします.
|
1
疑問に対する,自分の回答を一部追加.
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
0. 一時キーを発行してのメールアドレス認証は安全か.
|
6
6
|
0. POSTリクエストによるユーザ認証は安全か,もっと強固な認証方法はあるか.
|
7
7
|
0. クライアント,サーバ両サイドでのハッシュ処理は妥当か.
|
8
|
-
0. POSTリクエストによる個人情報を含
|
8
|
+
0. POSTリクエストによる個人情報を含むデータ送信は妥当か.
|
9
9
|
0. URL引数による個人情報を含まないデータ送信は妥当か.
|
10
10
|
|
11
11
|
の5点について,教えていただきたいです.1点でも知識をお貸しください.
|
@@ -47,6 +47,8 @@
|
|
47
47
|
signup2.php では,利用者はメールアドレスと一時認証キー,パスワードをPOSTリクエストにて送信します.メールアドレスと一時認証キーは平文,パスワードは「ソルトを付与しつつ,複数回ハッシュ関数を通したもの」をPOSTリクエストによって送信します.
|
48
48
|
サーバサイドでは,POSTリクエストを読み取り,未認証ユーザ情報テーブルに問い合わせ,検証が成功すれば,ユーザ情報テーブルに追加します.
|
49
49
|
|
50
|
+
この一時キーによって情報漏えいにつながることは少なく,メールアドレスによる登録数制限が可能であると考えています.これよりも簡易な手法はあるのでしょうか.また,この手法の危険性はあるのでしょうか.
|
51
|
+
|
50
52
|
**2. POSTリクエストによるユーザ認証は安全か,もっと強固な認証方法はあるか.**
|
51
53
|
|
52
54
|
**3. クライアント,サーバ両サイドでのハッシュ処理は妥当か.**
|
@@ -55,16 +57,22 @@
|
|
55
57
|
認証は,平文のメールアドレスと,「パスワードにソルトを付与し,複数回ハッシュ関数を通したもの」をPOSTリクエストによって送信します.
|
56
58
|
サーバサイドでは,POSTリクエストを読み取り,ハッシュ関数を通したパスワードに,更にソルトを付与し,ハッシュ関数を施します.このハッシュ値で,データベースに問い合わせてログイン処理とします.
|
57
59
|
|
58
|
-
|
60
|
+
POSTリクエストに情報を乗せるのは,URL引数に比べ安全かと思います.しかし,これ以外の送信手法について詳しくないため,これよりも安全性に優れるものがあれば,教えてください.
|
61
|
+
パスワードのハッシュ化は,クライアントのみで行うと,容易に偽装可能である.サーバサイドのみで行うと,クライアントはパスワードをPOSTリクエストに平文で乗せなければならない.という問題があると思いますが,実際はどのように対処しているのでしょうか.POSTリクエストに平文を乗せても良いのでしょうか.実際,POSTリクエストは第三者からどこまで読めるのでしょうか.
|
59
62
|
|
63
|
+
**4. POSTリクエストによる個人情報を含むデータ送信は妥当か.**
|
64
|
+
|
60
65
|
insert.php では,利用者はコメントを送信します.
|
61
66
|
コメントは,massagesテーブルのうち,receiving_timeを除くすべての要素を含むPOSTリクエストによって送信します.
|
62
67
|
サーバサイドでは,POSTリクエストを読み取り,整合性の確認(ユーザの存在確認,本文の内容確認),HTMLパース可能な文字列のエスケープを行い,SQLインジェクション対策を行ってinsert文を実行します.
|
63
68
|
|
69
|
+
個人情報を含まないのであれば,POSTリクエストに平文が乗っていても大丈夫であると思っています.メッセージ本文には,個人情報を特定できる文が含まれる可能性がありますが,POSTリクエストを用いるべきではないのでしょうか.
|
70
|
+
|
64
71
|
**5. URL引数による個人情報を含まないデータ送信は妥当か.**
|
65
72
|
|
66
73
|
massages.php では,利用者はコメントを見ることができます.
|
67
74
|
コメントは,receiversテーブルから,自分自身を含むmessage_idによって,messageをselectして出力します.URL引数による検索を備えます.例) massages.php&senderid=23
|
68
75
|
|
76
|
+
個人情報を含まないので,GETリクエストに平文を乗せようと考えております.
|
69
77
|
|
70
78
|
の5点について,1点でもいいので,教えていただければ幸いです.どうぞよろしくお願いします.
|