INYECCION DE CODIGO

29/11/2005 - 01:59 por Isaias | Informe spam
Para evitar la inyeccion de codigo, me han proporcionado esta funcion, ¿Algun
comentario?

CREATE FUNCTION dbo.fn_validatebadcode(
@variable nvarchar(4000)) RETURNS nvarchar(4000) AS
BEGIN
DECLARE @return_string nvarchar(4000)
DECLARE @badChars nvarchar(40)
DECLARE @badChar varchar(10), @Pos int

SET @badChars = 'select,drop,;,--,insert,delete,xp_,'
comas
SET @return_string = @variable
SET @Pos = CHARINDEX(',', @badChars, 1)

IF REPLACE(@badChars, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @badChar = LTRIM(RTRIM(LEFT(@badChars, @Pos - 1)))
IF @badChar <> ''
BEGIN
SELECT @return_string = REPLACE(@return_string,@badChar,'')
END

SET @badChars = RIGHT(@badChars, LEN(@badChars) - @Pos)
SET @Pos = CHARINDEX(',', @badChars, 1)
END
END
RETURN @return_string
END


Saludos
IIslas
 

Leer las respuestas

#1 Maxi [MVP]
29/11/2005 - 02:11 | Informe spam
Hola, y como la usarias? yo creo que lo mejor en lo que respecta a seguridad
es no dejar la injection de codigo, para ello:

-Evitar sql dinamico
-Controlar las comillas
-Manejar desde la aplicacion parametros y no EXEC SP's


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org



"Isaias" escribió en el mensaje
news:
Para evitar la inyeccion de codigo, me han proporcionado esta funcion,
¿Algun
comentario?

CREATE FUNCTION dbo.fn_validatebadcode(
@variable nvarchar(4000)) RETURNS nvarchar(4000) AS
BEGIN
DECLARE @return_string nvarchar(4000)
DECLARE @badChars nvarchar(40)
DECLARE @badChar varchar(10), @Pos int

SET @badChars = 'select,drop,;,--,insert,delete,xp_,'
comas
SET @return_string = @variable
SET @Pos = CHARINDEX(',', @badChars, 1)

IF REPLACE(@badChars, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @badChar = LTRIM(RTRIM(LEFT(@badChars, @Pos - 1)))
IF @badChar <> ''
BEGIN
SELECT @return_string = REPLACE(@return_string,@badChar,'')
END

SET @badChars = RIGHT(@badChars, LEN(@badChars) - @Pos)
SET @Pos = CHARINDEX(',', @badChars, 1)
END
END
RETURN @return_string
END


Saludos
IIslas

Preguntas similares