回答編集履歴
2
脱字修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
SQLでは、'~'のように「'」で前後を囲まれた表記は、リテラルの一です。
|
1
|
+
SQLでは、'~'のように「'」で前後を囲まれた表記は、リテラルの一形式です。
|
2
2
|
|
3
3
|
[リテラルとは](https://tech.pjin.jp/blog/2020/10/30/%E3%80%90sql%E5%85%A5%E9%96%80%E3%80%91%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB%E3%81%A8%E3%81%AF/)
|
4
4
|
|
1
リテラルに対する指摘への対応
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
SQLでは、'~'のように「'」で前後を囲まれた
|
1
|
+
SQLでは、'~'のように「'」で前後を囲まれた表記は、リテラルの一です。
|
2
2
|
|
3
3
|
[リテラルとは](https://tech.pjin.jp/blog/2020/10/30/%E3%80%90sql%E5%85%A5%E9%96%80%E3%80%91%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB%E3%81%A8%E3%81%AF/)
|
4
4
|
|
5
|
-
このリテラルを使う際は、「'」が前後の組になっている必要があります。
|
5
|
+
この形式のリテラルを使う際は、「'」が前後の組になっている必要があります。
|
6
6
|
|
7
7
|
> AND password='' or 1 = 1'
|
8
8
|
↑これだとだめなのでしょうか?
|
@@ -10,7 +10,7 @@
|
|
10
10
|
上記の場合、SQLは、以下となります。
|
11
11
|
SELECT * FROM honkaku_users WHERE login_id='dummy' AND password='' or 1 = 1'
|
12
12
|
|
13
|
-
このSQL文の中のリテラルは、'dummy'と''の2つで、文末に組になっていない'が残り、構文エラーとなって、SQLが実行されません。
|
13
|
+
このSQL文の中の'形式のリテラルは、'dummy'と''の2つで、文末に組になっていない'が残り、構文エラーとなって、SQLが実行されません。
|
14
14
|
|
15
15
|
この例の目的は、'を含んだパスワードを指定することで、本来ならレコードが存在せずに、パスワードエラーになるのを回避することにあるので、SQLエラーになっては、目的を達成できず、無意味になります。
|
16
16
|
|