一种避免脚本注入问题的方法

因为传入的参数可能会引起脚本注入的危险,因此应该对每个参数进行一些判断,以下是一种通用的判断语句,可应用于每个参数:
IF UPPER(@cols) LIKE UPPER(N'%0x%')

OR UPPER(@cols) LIKE UPPER(N'%;%')

OR UPPER(@cols) LIKE UPPER(N'%''%')

OR UPPER(@cols) LIKE UPPER(N'%--%')

OR UPPER(@cols) LIKE UPPER(N'%/*%*/%')

OR UPPER(@cols) LIKE UPPER(N'%EXEC%')

OR UPPER(@cols) LIKE UPPER(N'%xp_%')

OR UPPER(@cols) LIKE UPPER(N'%sp_%')

OR UPPER(@cols) LIKE UPPER(N'%SELECT%')

OR UPPER(@cols) LIKE UPPER(N'%INSERT%')

OR UPPER(@cols) LIKE UPPER(N'%UPDATE%')

OR UPPER(@cols) LIKE UPPER(N'%DELETE%')

OR UPPER(@cols) LIKE UPPER(N'%TRUNCATE%')

OR UPPER(@cols) LIKE UPPER(N'%CREATE%')

OR UPPER(@cols) LIKE UPPER(N'%ALTER%')

OR UPPER(@cols) LIKE UPPER(N'%DROP%')

BEGIN

SET @msg = N'Possible SQL injection attempt.';

RAISERROR(@msg, 16, 1);

RETURN;

END



posted @ 2012-01-31 10:52  万法自然~  阅读(505)  评论(0)    收藏  举报