SQL Инъекция: или 1 = 1 против или 1 = 1; - - - PullRequest
0 голосов
/ 31 марта 2020

Пытается учиться и понимать SQL инъекция.

Может кто-нибудь объяснить мне, почему ' or 1=1; -- - позволил мне обойти аутентификацию, а or 1=1 - нет?

1 Ответ

2 голосов
/ 31 марта 2020

Представьте себе запрос, построенный с использованием конкатенации строк:

"select * from myTable where id = '" + txtIdEnteredByUser +"'"

Если конечный пользователь вводит:

' or 1=1; -- 

, тогда запрос становится:

select * from myTable where id = '' or 1=1; --'

Это действительный запрос, который всегда оценивается как истинный из-за (ИЛИ 1 = 1), в результате возвращаются все значения таблицы.

Однако, если пользовательский ввод был:

or 1=1; 

запрос становится:

select * from myTable where id = ' or 1=1;'

, который является запросом, который не будет возвращать что-либо (вероятно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...