Динамический SQL: защитить параметр пароля от SQL-инъекций - PullRequest
0 голосов
/ 12 февраля 2011

Как бы страшно это не звучало, вход для параметра пароля должен быть защищен в следующем динамическом SQL: CREATE LOGIN NewLogin WITH PASSWORD='MyStrongPassword'.Параметр @ нельзя использовать: например, PASSWORD=@pwd (неправильный синтаксис рядом с ошибкой «@pwd»).С другими параметрами, такими как имя таблицы или имя пользователя, это более или менее просто: разрешить буквы, цифры и подчеркивания, проверить с помощью простого регулярного выражения и указать его.С паролями вы должны разрешить использование сильных символов.Так должен ли пароль быть очищен от определенных символов, таких как запятая, пробел и т. Д., Или есть лучший способ?

1 Ответ

1 голос
/ 12 февраля 2011

Не прямой ответ, но вы можете параметризовать sp_addlogin:

exec sp_AddLogin @user, @password;

Или вы можете использовать SMO.

...