Pregunta

Estoy un poco confundido aquí.Microsoft, hasta donde yo sé, afirma que la parametrización es la mejor manera de proteger su base de datos de ataques de inyección SQL.Pero encuentro dos fuentes de información contradictorias aquí:

Esta página dice que se use el objeto de comando ADO.Pero esta página dice que el objeto de comando no es seguro para secuencias de comandos.Creo recordar haber leído en alguna parte que el objeto de comando no debería usarse en VBScript o JScript debido a vulnerabilidades de seguridad, pero parece que no puedo encontrar ese artículo.

¿Me estoy perdiendo algo aquí o esos dos artículos parecen contradecirse?

¿Fue útil?

Solución

Podría estar equivocado aquí, pero creo que esto sólo significa que alguien podría usar el objeto Comando para hacer cosas malas.Es decir.No se puede confiar en él si alguien más lo está escribiendo.

Ver seguro para secuencias de comandos en este articulo.Cada instancia que habla de esta frase en línea, hace referencia a ella como si estuviera marcando un control ActiveX diciendo "Este control no realiza E/S o solo responde al servidor del que proviene", pero el objeto Comando no hace eso.Se puede utilizar para hacer muchas cosas que podrían resultar inseguras.

La "seguridad" de la que hablan y la "seguridad" para evitar la inyección de SQL son dos cosas diferentes.El artículo sobre el uso del objeto Comando ADO para parametrizar sus datos es acertado.Debes hacer eso.

Y Microsoft lo confirma aún más aquí:

http://msdn.microsoft.com/en-us/library/ms676585(v=VS.85).aspx

Otros consejos

Creo que "seguro para secuencias de comandos" significa "seguro para ejecutarlo desde una página web que acabamos de recuperar de algún príncipe nigeriano".El objeto de comando debería ser seguro para ejecutarse en el servidor.

Sin embargo, en el trabajo, en el pasado mis colegas no confiaban en él, por lo que teníamos un marco interno que básicamente hacía lo mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top