Эта хранимая процедура проверяет имя пользователя и пароль и возвращает 1
, если учетные данные соответствуют другим 0
.Является ли эта хранимая процедура уязвимой для SQL-инъекций?
CREATE PROCEDURE usp_CheckPermisssions
@UserName NVARCHAR(50),
@Password NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(SELECT 1 FROM dbo.Users WHERE [email protected] and [email protected])
RETURN 1
ELSE
RETURN 0
END
GO
Это всего лишь образец хранимой процедуры. Я просто хочу узнать о методах SQL-инъекций, чтобы мой код не был введен.
Предположим, что входы не дезинфицированы в переднем конце.
Я знаю, что если я использую динамический запрос в хранимой процедуре или определенных запросах в интерфейсе, тогда будут применяться методы SQL-инъекций.
Нет: входные данные передаются через передний конец.
Мой вопрос в другом слова
Может кто-нибудь сделать инъекцию на этот запрос? Если да, то как?
Почему пользовательский ввод только? –
Потому что это первое эмпирическое правило. Есть еще: P –
Зачем разделять одно правило на два? Не могут ли данные сервера также содержать служебный символ? –