Delimitadores de valores

24/04/2008 - 10:47 por www.capelblog.com | Informe spam
Hola,

Mirando la ayuda veo que existe SET QUOTED_IDENTIFIER ON/OFF para
cambiar comillas simples por dobles en los delimitadores de valores de
una sentencia sql.

Me interesaría saber si hay alguna forma de poder cambiar esos
delimitadores por otro definido por mi.

Por ejemplo

UPDATE mitabla SET micampo= #mi valor entre 'almohadillas'#

o otro delimitador

UPDATE mitabla SET micampo = [mi valor entre 'corchetes']

En definitiva... quisiera evitar la posible 'inyección de código sql'
al haber la posiblidad de que en los valores hayan caracteres
delimitadores que haga que sqlserver interprete erróneamente la
sentencia.

Estoy mirando que hay un sp_configure que podría darme alguna pista al
respecto... pero no se encontrar suficiente literatura al respecto.

Me interesa que la solución que se aplique sea válida para SQL Server
2000 en adelante.

Saludos y gracias por vuestra ayuda.
José Luis Capel
 

Leer las respuestas

#1 Alejandro Mesa
24/04/2008 - 14:58 | Informe spam
www.capelblog.com,

Esa no es la forma de evitar SQL dinamico. Para eso debes evitar generar
sentencias mediante la concatenacion de valores entrados por el usuario, sin
importar en que lado lo haces, en el lado del servidor o en el lado del
cliente. Trata de usar procedimientos almacenados que usen parametros y no
concatenes los valores pasados sino usales tal y como.


AMB

"www.capelblog.com" wrote:

Hola,

Mirando la ayuda veo que existe SET QUOTED_IDENTIFIER ON/OFF para
cambiar comillas simples por dobles en los delimitadores de valores de
una sentencia sql.

Me interesaría saber si hay alguna forma de poder cambiar esos
delimitadores por otro definido por mi.

Por ejemplo

UPDATE mitabla SET micampo= #mi valor entre 'almohadillas'#

o otro delimitador

UPDATE mitabla SET micampo = [mi valor entre 'corchetes']

En definitiva... quisiera evitar la posible 'inyección de código sql'
al haber la posiblidad de que en los valores hayan caracteres
delimitadores que haga que sqlserver interprete erróneamente la
sentencia.

Estoy mirando que hay un sp_configure que podría darme alguna pista al
respecto... pero no se encontrar suficiente literatura al respecto.

Me interesa que la solución que se aplique sea válida para SQL Server
2000 en adelante.

Saludos y gracias por vuestra ayuda.
José Luis Capel

Preguntas similares