質問編集履歴

6

並び替え

2020/09/04 09:24

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -34,6 +34,44 @@
34
34
 
35
35
 
36
36
 
37
+ ### URL
38
+
39
+ フロントエンドから非同期でデータを送受信するのは、入力内容の保存をする時だけです。
40
+
41
+ また、コンテンツとAPIはドメインが一緒です。
42
+
43
+
44
+
45
+ #### サイトコンテンツ
46
+
47
+
48
+
49
+ URL|概要
50
+
51
+ ---|---
52
+
53
+ https://example.com/contact|フォーム本体のページ
54
+
55
+
56
+
57
+ #### API
58
+
59
+ POSTのみです。
60
+
61
+ GETで閲覧するAPIは実装しません。
62
+
63
+
64
+
65
+ URL|method|概要
66
+
67
+ ---|---|---
68
+
69
+ https://example.com/api/contacts|POST|問い合わせ内容を登録します。
70
+
71
+
72
+
73
+
74
+
37
75
  ### ページ構成
38
76
 
39
77
  よくあるフォームの構成です。
@@ -42,11 +80,11 @@
42
80
 
43
81
  ---|---|---
44
82
 
45
- https://example.com/contact/create|入力ページ|フォームで個人情報と問い合わせ内容を入力します。
83
+ /contact/create|入力ページ|フォームで個人情報と問い合わせ内容を入力します。
46
84
 
47
- https://example.com/contact/confirm|確認ページ|入力ページの登録内容を確認、問題なければ登録処理をする(APIで入力された内容を送信)
85
+ /contact/confirm|確認ページ|入力ページの登録内容を確認、問題なければ登録処理をする(APIで入力された内容を送信)
48
86
 
49
- https://example.com/contact/send|完了ページ|登録完了したら完了ページを表示
87
+ /contact/send|完了ページ|登録完了したら完了ページを表示
50
88
 
51
89
 
52
90
 
@@ -82,40 +120,6 @@
82
120
 
83
121
 
84
122
 
85
- ### URL
86
-
87
- フロントエンドから非同期でデータを送受信するのは、入力内容の保存をする時だけです。
88
-
89
- また、コンテンツとAPIはドメインが一緒です。
90
-
91
-
92
-
93
- #### サイトコンテンツ
94
-
95
-
96
-
97
- URL|概要
98
-
99
- ---|---
100
-
101
- https://example.com/|フォーム本体のページ
102
-
103
-
104
-
105
- #### API
106
-
107
- POSTのみです。
108
-
109
- GETで閲覧するAPIは実装しません。
110
-
111
-
112
-
113
- URL|method|概要
114
-
115
- ---|---|---
116
-
117
- https://example.com/api/contacts|POST|問い合わせ内容を登録します。
118
-
119
123
 
120
124
 
121
125
  ## 所感

5

セキュリティホール追記

2020/09/04 09:24

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -132,6 +132,8 @@
132
132
 
133
133
  - APIで送信する個人情報を抜かれる危険性がある。
134
134
 
135
+ - パラメータに有害な情報(SQLインジェクションの誘発など)が入ってくる
136
+
135
137
 
136
138
 
137
139
  ### 対策
@@ -143,3 +145,7 @@
143
145
  - APIで送信する個人情報を抜かれる危険性がある
144
146
 
145
147
  -> HTTPSなのでそもそも暗号化されている
148
+
149
+ - パラメータに有害な情報(SQLインジェクションの誘発など)
150
+
151
+ -> LaravelのクエリビルダーはPDO::ATTR_EMULATE_PREPARESが有効なので、対策はされている

4

追記

2020/09/04 05:17

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
 
52
52
 
53
- APIは自作です。
53
+ 登録データを送信するエンドポイントのAPIは自作です。
54
54
 
55
55
  送信された情報の精査と、実際の登録の処理は実装します。
56
56
 

3

ページ構成追記

2020/09/03 16:15

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -38,13 +38,15 @@
38
38
 
39
39
  よくあるフォームの構成です。
40
40
 
41
+ URL|ページ名|概要
41
42
 
43
+ ---|---|---
42
44
 
43
- 入力ページ|フォームで個人情報と問い合わせ内容を入力します。
45
+ https://example.com/contact/create|入力ページ|フォームで個人情報と問い合わせ内容を入力します。
44
46
 
45
- 確認ページ|入力ページの登録内容を確認、問題なければ登録処理をする(APIで入力された内容を送信)
47
+ https://example.com/contact/confirm|確認ページ|入力ページの登録内容を確認、問題なければ登録処理をする(APIで入力された内容を送信)
46
48
 
47
- 完了ページ|登録完了したら完了ページを表示
49
+ https://example.com/contact/send|完了ページ|登録完了したら完了ページを表示
48
50
 
49
51
 
50
52
 

2

修正

2020/09/03 16:14

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -24,9 +24,7 @@
24
24
 
25
25
  - [Next.js](https://nextjs.org/)のようなフレームワークでは、セキュリティ対策用のモジュールや関数があるのでしょうか?
26
26
 
27
- 既に用意されているのであれば、フレームワークに準じた方が安全かもしれません。
28
-
29
- もちろん、概念として対策方法は知っておくべきだとは思います。
27
+ もちろん、フレームワークに丸投げせず、概念として対策方法は知っておくべきだとは思います。
30
28
 
31
29
 
32
30
 

1

追記

2020/09/03 16:12

投稿

hasshy
hasshy

スコア102

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  従来のセッションが分かれているフォームであれば、多少知見がありますので対策が思いつきます。
8
8
 
9
- SPAの場合も従来の対策をそのまま当てはめても問題ないのか経験がなくて判断できません。
9
+ SPAの場合も従来の対策をそのまま当てはめても問題ないのか、SPA実装の経験がなくて判断できません。
10
10
 
11
11
 
12
12