回答編集履歴

1

コメントへの返信を追記しました

2019/12/30 04:59

投稿

ockeghem
ockeghem

スコア11701

test CHANGED
@@ -43,3 +43,41 @@
43
43
 
44
44
 
45
45
  htmlspecialcharsはクロスサイトスクリプティング(XSS)対策に必要なもので、mysqliかPDOに関わらず表示の際に必要です
46
+
47
+
48
+
49
+ ---
50
+
51
+
52
+
53
+ コメントへの返信を追記します。
54
+
55
+
56
+
57
+ > > どこにSQLインジェクション脆弱性があるかわからない場合はコメント等で質問してください。
58
+
59
+ よろしくお願いします。
60
+
61
+ DB接続時に文字コードとエミュレーションの指定を接続時にtry,catchの接続部分で脆弱性があると考えました。このあたりをしっかり学習し、対応することで攻撃耐性を持たせるという解釈で合っていますでしょうか?
62
+
63
+
64
+
65
+ 違います。決定的に間違ってます。SQLインジェクション脆弱性があるのは下記の箇所です。
66
+
67
+
68
+
69
+ ```PHP
70
+
71
+ $user = $con->query("
72
+
73
+ SELECT * FROM users
74
+
75
+ WHERE id = '$id'
76
+
77
+ ");
78
+
79
+ ```
80
+
81
+
82
+
83
+ $id の指定にプレースホルダを使っていないため、ここでSQLインジェクション脆弱性になっています。queryメソッドを禁止したらどうかという提案は、これが理由です。