动态SQL:从SQL注入中保护密码参数

时间:2011-02-12 00:45:41

标签: sql security tsql sql-server-2008 sql-injection

听起来很可怕,必须在以下动态SQL中保护密码参数的输入:CREATE LOGIN NewLogin WITH PASSWORD='MyStrongPassword'。无法使用@parameter: 像这样PASSWORD=@pwd('@pwd'错误附近的语法错误)。使用表名或用户名等其他参数,它或多或少都很简单:允许使用字母,数字和下划线,使用简单的正则表达式进行验证并对其进行引号化。使用密码,您必须允许使用强字符。 那么密码应该从逗号,空格等某些字符中清除,还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

不是直接答案,但您可以参数化sp_addlogin:

exec sp_AddLogin @user, @password;

或者您可以使用SMO。