Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SqlParameter não permite o nome da tabela - outras opções sem ataque de injeção de sql?


Vá para uma lista branca. Só pode haver um conjunto fixo de possíveis valores corretos para o nome da tabela de qualquer maneira - pelo menos, espero.

Se você não tiver uma lista branca de nomes de tabelas, poderá começar com uma lista branca de caracteres - se você restringi-lo a A-Z, a-z e 0-9 (sem pontuação), isso deve remover muito da preocupação. (É claro que isso significa que você não suporta tabelas com nomes estranhos... nós realmente não conhecemos seus requisitos aqui.)

Mas não, você não pode usar parâmetros para nomes de tabelas ou colunas - apenas valores. Esse é normalmente o caso em bancos de dados; Não me lembro de ter visto um que fez parâmetros de suporte para isso. (Ouso dizer que existem alguns, é claro...)