回答編集履歴

2

追記

2016/07/20 07:28

投稿

tanat
tanat

スコア18713

test CHANGED
@@ -69,3 +69,27 @@
69
69
  ``` select count(*) from ```
70
70
 
71
71
  のようなSQLにして、結果をfetchして件数が一件であることを確認するというのがよくある方法です。
72
+
73
+
74
+
75
+
76
+
77
+ 今回試みようとされている
78
+
79
+ 「ユーザの入力によって不正なSQL文が作られてしまうことを利用してエラーハンドリングを行う」
80
+
81
+ というアプローチは、そのままSQLインジェクション脆弱性を作りこんでしまう事になってしまうため、
82
+
83
+ ユーザが完全に信頼できる場合(例えばphpMyAdminの様に管理者以外は触らないことを前提にする場合)を除いては
84
+
85
+
86
+
87
+ **セキュリティ上絶対にやってはいけないアプローチ**
88
+
89
+
90
+
91
+ となります。
92
+
93
+
94
+
95
+

1

強調表示を修正

2016/07/20 07:28

投稿

tanat
tanat

スコア18713

test CHANGED
@@ -12,13 +12,17 @@
12
12
 
13
13
 
14
14
 
15
- **mysql_* 系の関数は古くて非推奨になっているので、使わないほうがいいです。
16
15
 
17
- また、現在のソースコードには深刻なSQLインジェクション脆弱性を抱えているので修正の必要があります。
18
16
 
19
- 具体的に攻撃者は任意のユーザに成りすましログインすることが可能なコードになっていす。
17
+ **mysql_* 系の関数古く非推奨になっているので、使わないほうがいいです。**
20
18
 
19
+
20
+
21
+ **また、現在のソースコードには深刻なSQLインジェクション脆弱性を抱えているので修正の必要があります。
22
+
21
- **
23
+ 具体的には攻撃者は任意のユーザに成りすましてログインすることが可能なコードになっています。**
24
+
25
+
22
26
 
23
27
  おそらく古い参考書やサイトを参考にされたかと思いますので、ここ1-2年くらいのサイト/参考書を参考にしなおされるのがいいかと思います。
24
28