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

Preguntas similare

Leer las respuestas

#6 Carlos Sacristán
29/11/2005 - 17:51 | Informe spam
Pues si además de intentar quitarte el sql dinámico, intentas evitar
usar xp_cmdshell, tu aplicación será mucho más segura. Te lo digo porque no
sé qué es más peligroso... Dejar abierto ese procedimiento almacenado es un
agujero de seguridad tremendo


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Isaias" escribió en el mensaje
news:
Mostrar la cita
SP_EXECUTESQL,
Mostrar la cita
y
Mostrar la cita
entradas por
Mostrar la cita
+ ''''
Mostrar la cita
que no
Mostrar la cita
no
Mostrar la cita
igual
Mostrar la cita
pero
Mostrar la cita
aplicaciones,
Mostrar la cita
INFORMATICA de
Mostrar la cita
bases de
Mostrar la cita
seguridad
Mostrar la cita
funcion,
Mostrar la cita
delimitada por
Mostrar la cita
#7 Maxi
29/11/2005 - 18:25 | Informe spam
Exacto!! es mas, en sql2005 lo debes habilitar porque por default no viene
;-)


Salu2
Maxi [MVP SQL SERVER]


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:%
Mostrar la cita
#8 Isaias
29/11/2005 - 22:52 | Informe spam
Bien, entonces, cambio mi pregunta:

¿Como crear carpetas o ejecutar comandos de DOS desde SQL Server?

Ejemplo:

DIR *.*
DEL \\Server\CarpetaMyArchivo.txt
COPY \\Server\CarpetaMyArchivo.txt \\OtroServer\Carpeta2\*.*

Etc.

Saludos
IIslas


"Maxi" escribió:

Mostrar la cita
#9 Maxi [MVP]
30/11/2005 - 01:06 | Informe spam
Hola, no lo haria!! no es una funcion del motor de BDD andar creando
carpetas y estas cosas!! Has que cada parte de la aplicacion haga lo que
tiene que hacer y no quieras usar un destornillador para poner clavos ;-)


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



"Isaias" escribió en el mensaje
news:
Mostrar la cita
#10 Carlos Sacristán
30/11/2005 - 08:16 | Informe spam
Isaías, estoy de acuerdo con lo que dice Maxi. El que el motor te
permita ejecutar comandos del sistema operativo no significa que ese sea el
propósito para el que se creó. Es lo mismo que pasará con SQL Server 2005
con la integración del CLR: habrá muchísimas preguntas que se harán en el
grupo sobre cómo se hace tal o cual programa, cuando ese no es la finalidad
por la cual se ha integrado.

Yo me replantearía cómo se están haciendo las cosas en esa aplicación y
dejar a cada parte el cometido para el que fue pensada...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Isaias" escribió en el mensaje
news:
Mostrar la cita
viene
Mostrar la cita
evitar
Mostrar la cita
porque
Mostrar la cita
es
Mostrar la cita
@p1
Mostrar la cita
ya
Mostrar la cita
table
Mostrar la cita
server
Mostrar la cita
sea
Mostrar la cita
usan,
Mostrar la cita
a
Mostrar la cita
mis
Mostrar la cita
'')
Mostrar la cita
respecta a
Mostrar la cita
mensaje
Mostrar la cita
@Pos)
Mostrar la cita
Ads by Google
Search Busqueda sugerida