Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Expondo o nome da tabela e os nomes dos campos na URL de solicitação


Não tenho nenhum problema em usar os mesmos nomes (ou muito semelhantes) na URL e no banco de dados - claro, você pode estar "expondo" detalhes de implementação, mas se estiver escolhendo nomes radicalmente diferentes na URL e no banco de dados, você provavelmente está escolhendo nomes ruins. Também sou fã de nomenclatura consistente — a comunicação com codificadores/testadores/clientes se torna muito mais difícil se todos chamarem tudo de algo ligeiramente diferente.

O que me incomoda é que você está deixando o usuário executar consultas arbitrárias em seu banco de dados. http://.../index.php?table=users&user_id=1 , dizer? Ou http://.../index.php?table=users&password=password (não que você deva armazenar senhas em texto simples)? Ou http://.../index.php?table=users&age=11 ?

Se o usuário conectado ao banco de dados tiver as mesmas permissões que o usuário sentado na frente do navegador da Web, pode fazer sentido. Geralmente, esse não será o caso, então você precisará de alguma camada que saiba o que o usuário é e não tem permissão para ver, e essa camada é muito mais fácil de escrever corretamente pela lista de permissões.

(Se você colocou lógica suficiente em procedimentos armazenados, pode funcionar, mas seus procedimentos armazenados codificarão nomes de coluna...)