SQL-запрос второго порядка - PullRequest
0 голосов
/ 23 октября 2019

Допустим, я вставляю имя пользователя и пароль в базу данных:

INSERT INTO Users (username, Password)
VALUES ('Eden', 'Eden123');

Но если я вставлю SQL-инъекцию второго порядка, она должна выглядеть так:

INSERT INTO Users (username, Password) 
VALUES ('Eden'--', 'Eden123');

А поскольку запрос '-' отбрасывается, поэтому он будет:

INSERT INTO Users (username , Password) 
VALUES ('Eden'

Этот запрос недействителен, поэтому мой вопрос заключается в том, как выглядит запрос, когда я хочу вставить имя пользователя Eden'--и пароль Eden123?

Спасибо!

1 Ответ

0 голосов
/ 23 октября 2019

Вы должны экранировать все символы, которые нарушают ваш запрос. В зависимости от реляционной базы данных и ее версии она может быть разной.

Просто используйте параметры, и вы автоматически избавитесь от всего этого для вас.

Что-то вроде:

DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'INSERT INTO Users (Username) VALUES(@VALUE)'
EXECUTE sp_executesql @SQL, N'@VALUE VARCHAR(10)', 'Username--'
...