回答編集履歴

2

見直し

2018/12/11 01:49

投稿

退会済みユーザー
test CHANGED
@@ -18,15 +18,19 @@
18
18
 
19
19
  `echo htmlspecialchars($_POST['company']`などと
20
20
 
21
- **フォーム受信データをエスケープの上でそのまま表示するのはやめるべき**で、
21
+ **フォーム受信データをエスケープ処理したとしても)そのまま表示するのはやめるべき**で、
22
22
 
23
23
  エスケープするから平気っていう話じゃないです。
24
24
 
25
+ 通常は、
26
+
25
- 通常は、汚染されているかもしれないフォーム受信データから、
27
+ 汚染されているかもしれないフォーム受信データから、
26
28
 
27
29
  不適切な文字列(やバイトデータ)が含まれていないかを
28
30
 
29
31
  フィルター(最低でもfilter_input())かけて変数に代入し、
32
+
33
+ `$company = filter_input(INPUT_POST, 'company');`
30
34
 
31
35
  さらに不適切な文字列が含まれていないか検証アルゴリズムを敷いて
32
36
 
@@ -52,9 +56,13 @@
52
56
 
53
57
 
54
58
 
55
- あと、一度でも設置されたフォームにアクセスすると構造がわかってしまうため、
59
+ あと、一度でも設置されたフォームにアクセスすると
60
+
61
+ フォームの構造(phpファイル名、フォームのnameなど)がわかってしまうため、
56
62
 
57
63
  完了ページのphpを直にBOTプログラムなどから叩くことができてしまいます。
64
+
65
+ **自前フォームからの入力のみを許可する仕組みに変えていかないといけない**のです。
58
66
 
59
67
  (全然改良されていないけど、もしも)せっかく確認ページで検証したところで、
60
68
 

1

加筆修正

2018/12/11 01:49

投稿

退会済みユーザー
test CHANGED
@@ -9,6 +9,8 @@
9
9
  **$companyや$addressなどの変数は、どこで定義されていますか?**
10
10
 
11
11
  誰も値を詰めていない、未定義の変数を参照しても、カラです。
12
+
13
+ ちゃんと動作確認、自分でやれてますか?
12
14
 
13
15
 
14
16