Pergunta

Estou um pouco confuso aqui.Pelo que sei, a Microsoft afirma que a parametrização é a melhor maneira de proteger seu banco de dados contra ataques de injeção de SQL.Mas encontro duas fontes de informação conflitantes aqui:

Esta página diz para usar o objeto de comando ADO.Mas esta página diz que o objeto de comando não é seguro para scripts.Parece que me lembro de ter lido em algum lugar que o objeto de comando não deveria ser usado em VBScript ou JScript devido a vulnerabilidades de segurança, mas não consigo encontrar esse artigo.

Estou faltando alguma coisa aqui ou esses dois artigos parecem se contradizer?

Foi útil?

Solução

Posso estar errado aqui, mas acho que isso significa apenas que alguém poderia usar o objeto Command para fazer coisas ruins.Ou sejanão é confiável se alguém estiver fazendo o script.

Ver seguro para scripts neste artigo.Cada instância que fala sobre essa frase on-line faz referência a ela como se você estivesse marcando um controle ActiveX dizendo "Este controle não faz E/S ou apenas responde ao servidor de onde veio", mas o objeto Command não faz isso.Ele pode ser usado para fazer muitas coisas que podem ser inseguras.

O "seguro" de que estão falando e o "seguro" para evitar injeção de SQL são duas coisas diferentes.O artigo sobre como usar o objeto ADO Command para parametrizar seus dados está correto.Você deveria fazer isso.

E a Microsoft confirma isso aqui:

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

Outras dicas

Acho que "seguro para scripts" significa "seguro para ser executado a partir de uma página da Web que acabamos de recuperar de algum príncipe nigeriano".O objeto de comando deve ser seguro para execução no servidor.

Porém, no trabalho, antigamente meus colegas não confiavam nisso, então tínhamos uma estrutura interna que basicamente fazia a mesma coisa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top