基本情報技術者試験へ向けて勉強していてSQLインジェクションの説明のSQL文で理解できない点があるので質問させていただきます。
ログインする際IDとパスワードで認証するシステムで
`ID:ABCDEF Pass:'OR 1 = 1 --'
と入力するとSQLが
SELECT * FROM 会員表 WHERE ID = 'ABCDEF' AND Pass = '' OR 1 =1 --''
となり1 = 1が必ず真となるのでID、Passともに任意となってしまう。
という説明でしたが、この場合ID = 'ABCDEF'のANDは 1 = 1が入ってしまっている時点で有効でないのでしょうか。
ANDがあるから IDはABCDEFじゃないと入れないんじゃないの?という認識なのですが、1=1が入ってしまっている時点でWHEREに対する条件はtrueとなるということなのでしょうか。
SQLも基本は勉強したのですが、不慣れなためご教授いただければ幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/28 12:25