Fiz assim e funcionou. Obrigado pela dica.
Mas ainda tenho dúvida quanto à segurança deste método. Afinal, se não estou enganado (se eu estiver, por favor, me corrijam), o programa vai remeter para o provedor, ao fazer a conexão, a senha descodificada, não é?
É claro que, desta forma, a senha já não constará descodificada no .exe (se bem que, ao que me parece, qualquer hacker minimamente esperto saberá descodificar senha com ascii, né?
Mas, uma vez que o programa remeterá na conexão a senha descodificada, qualquer um que intercepte a conexão terá a senha.
Reitero que, até onde sei, o hacker obteve o acesso ao banco de dados interceptando a conexão.
Proteção de Banco de Dados MySQL
Moderador: Moderadores
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Proteção de Banco de Dados MySQL
Bom dia,
Segurança nunca é demais, e o que vc tem que ter é um pacote de soluções, dependendo da sua necessidade, e uma delas, é usar SSL e coisas desse tipo.
Pode ver alguma coisa nesse link: https://imasters.com.br/data/estabelece ... postgresql
De fato é que o protocolo de conexão aos Bancos não evoluiu nada, passa o IP, Porta, User, Senha, DB e pronto a M**** tá feita, hehe
O bom da API RESTFull, é que vc mesmo cria as regras, é um serviço web que vai verificar tudo o que vc quiser e só faz o Select com o DB depois das validações que seu serviço fizer.
Abraços.
Segurança nunca é demais, e o que vc tem que ter é um pacote de soluções, dependendo da sua necessidade, e uma delas, é usar SSL e coisas desse tipo.
Pode ver alguma coisa nesse link: https://imasters.com.br/data/estabelece ... postgresql
De fato é que o protocolo de conexão aos Bancos não evoluiu nada, passa o IP, Porta, User, Senha, DB e pronto a M**** tá feita, hehe
O bom da API RESTFull, é que vc mesmo cria as regras, é um serviço web que vai verificar tudo o que vc quiser e só faz o Select com o DB depois das validações que seu serviço fizer.
Abraços.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Proteção de Banco de Dados MySQL
Pois então, é exatamente isto que preciso evitar, que a conexão passe todos os dados abertos.
Essa de usar SSL, acho que é muito complicado pra mim. Não sei se consigo.
Estudei a API Restful que vc recomendou. Até entendi o conceito, mas não entendi como ela me ajudaria. Na verdade, não entendi bem como ela funciona com o banco de dados. Entendi as requisições exemplificadas, mas como ela faria a conexão com o banco de dados?
Vi que precisa entender de JS, o que eu não entendo.
Será que vc conseguiria me dar um exemplo prático, por favor?
Essa de usar SSL, acho que é muito complicado pra mim. Não sei se consigo.
Estudei a API Restful que vc recomendou. Até entendi o conceito, mas não entendi como ela me ajudaria. Na verdade, não entendi bem como ela funciona com o banco de dados. Entendi as requisições exemplificadas, mas como ela faria a conexão com o banco de dados?
Vi que precisa entender de JS, o que eu não entendo.
Será que vc conseguiria me dar um exemplo prático, por favor?
Inacio de Carvalho Neto
-
ivanil
- Usuário Nível 3

- Mensagens: 166
- Registrado em: 11 Set 2004 15:13
- Localização: Florianópolis/SC
Proteção de Banco de Dados MySQL
Este assunto é dinâmico e complexo, especialmente ao discutir a segurança do banco de dados, desconsiderando a criptografia de dados. Em grandes empresas, é comum isolar a rede corporativa do sistema de Wi-Fi, uma vez que o Wi-Fi envia pacotes para todos os dispositivos da rede, embora apenas o destinatário pretendido os receba. No entanto, um hacker pode clonar a placa e realizar outras atividades maliciosas.
Outro ponto relevante é como muitos profissionais tratam o SGBD (Sistema de Gerenciamento de Banco de Dados) como DBF (Database File). É importante reconhecer que o SGBD tem sua própria funcionalidade e deve ser considerado como uma entidade externa, não como parte integrante da aplicação.
Além disso, chamou minha atenção o fato de você mencionar que alguém copiou sua base de dados usando um usuário e senha obtidos por meio de uma captura de pacotes. É importante lembrar que utilizar a conta root compromete seriamente a segurança. É recomendado criar usuários com permissões limitadas às operações necessárias. Sugiro que assista ao vídeo fornecido para obter informações importantes: https://www.youtube.com/watch?v=tvEpRQinYk4.
Em grandes empresas, os bancos de dados são mantidos em servidores sem acesso à internet, totalmente offline para o mundo exterior. Na prática, você acessa um dispositivo online que está na estrutura de rede do servidor, o qual faz as requisições e fornece a impressão ao usuário final de que o servidor está na internet. No entanto, antes que a requisição chegue ao servidor, ela passa por várias camadas de segurança.
No final das contas, cada pessoa compartilha suas experiências, que nem sempre estão alinhadas com as melhores práticas. Por isso, é fundamental estudar segurança para tomar decisões mais precisas que atendam ao seu cenário específico.
Outro ponto relevante é como muitos profissionais tratam o SGBD (Sistema de Gerenciamento de Banco de Dados) como DBF (Database File). É importante reconhecer que o SGBD tem sua própria funcionalidade e deve ser considerado como uma entidade externa, não como parte integrante da aplicação.
Além disso, chamou minha atenção o fato de você mencionar que alguém copiou sua base de dados usando um usuário e senha obtidos por meio de uma captura de pacotes. É importante lembrar que utilizar a conta root compromete seriamente a segurança. É recomendado criar usuários com permissões limitadas às operações necessárias. Sugiro que assista ao vídeo fornecido para obter informações importantes: https://www.youtube.com/watch?v=tvEpRQinYk4.
Em grandes empresas, os bancos de dados são mantidos em servidores sem acesso à internet, totalmente offline para o mundo exterior. Na prática, você acessa um dispositivo online que está na estrutura de rede do servidor, o qual faz as requisições e fornece a impressão ao usuário final de que o servidor está na internet. No entanto, antes que a requisição chegue ao servidor, ela passa por várias camadas de segurança.
No final das contas, cada pessoa compartilha suas experiências, que nem sempre estão alinhadas com as melhores práticas. Por isso, é fundamental estudar segurança para tomar decisões mais precisas que atendam ao seu cenário específico.
Proteção de Banco de Dados MySQL
Assisti o vídeo, muito bom, mas não achei ali uma solução efetiva pro que preciso.
Não uso o root não, tenho um usuário específico, mas com as funcionalidades básicas que uso no sistema (select, insert, update, delete, create, alter, drop), ele consegue fazer de tudo, né?
Mas essa ideia de usuário específico seria ótimo, se eu pudesse autorizar esse usuário a acessar o banco de dados apenas por meio do meu sistema, e não por outros programas (HeidiSQL, PHPMyAdmin etc). Isso é possível?
Ou quem sabe se de alguma outra forma eu pudesse impedir que o usuário específico do sistema fizesse qualquer coisa que eu não faça no sistema, como, por exemplo, copiar todo o banco de dados. Tem algum jeito de fazer isso?
Não uso o root não, tenho um usuário específico, mas com as funcionalidades básicas que uso no sistema (select, insert, update, delete, create, alter, drop), ele consegue fazer de tudo, né?
Mas essa ideia de usuário específico seria ótimo, se eu pudesse autorizar esse usuário a acessar o banco de dados apenas por meio do meu sistema, e não por outros programas (HeidiSQL, PHPMyAdmin etc). Isso é possível?
Ou quem sabe se de alguma outra forma eu pudesse impedir que o usuário específico do sistema fizesse qualquer coisa que eu não faça no sistema, como, por exemplo, copiar todo o banco de dados. Tem algum jeito de fazer isso?
Inacio de Carvalho Neto
-
ivanil
- Usuário Nível 3

- Mensagens: 166
- Registrado em: 11 Set 2004 15:13
- Localização: Florianópolis/SC
Proteção de Banco de Dados MySQL
Bom dia, Inácio,
Suas dúvidas evidenciam a necessidade de aprofundar seus conhecimentos em conceitos e segurança de banco de dados.
Os comandos DDL - Data Definition Language são muito especiais e devem ser atribuídos a um usuário específico para manutenção do banco de dados.
Você pode começar inspecionando os usuários do seu SGBD com o seguinte comando:
SELECT user, host FROM mysql.user;
Assim, você poderá ver as permissões de cada usuário com o comando:
SHOW GRANTS FOR root@localhost;
Em suma, não existe uma forma única de lidar com isso. Há diversas abordagens possíveis. Por isso, insisto que você estude os conceitos de SGBD. Acredito que a forma mais segura é manter o SGBD isolado da internet. Existem várias estratégias a serem consideradas, dependendo da sua infraestrutura. Entender esses conceitos é fascinante!
Suas dúvidas evidenciam a necessidade de aprofundar seus conhecimentos em conceitos e segurança de banco de dados.
Aqui está o ponto crucial. Embora você não esteja usando o usuário "root", está utilizando um usuário específico com permissões semelhantes ao "root", o que é praticamente o mesmo.cjp escreveu:Não uso o root não, tenho um usuário específico, mas com as funcionalidades básicas que uso no sistema (select, insert, update, delete, create, alter, drop), ele consegue fazer de tudo, né?
Os comandos DDL - Data Definition Language são muito especiais e devem ser atribuídos a um usuário específico para manutenção do banco de dados.
Perceba que você está considerando controlar o SGBD como se fosse parte do seu aplicativo. Mude essa mentalidade. O SGBD tem autonomia própria e gerencia suas próprias regras de segurança definidas pelo administrador do banco de dados. Ele determina quem pode visualizar, modificar ou excluir informações. Portanto, qualquer aplicativo ou ferramenta (como HeidiSQL ou PHPMyAdmin) está sujeito a essas regras.cjp escreveu: .., se eu pudesse autorizar esse usuário a acessar o banco de dados apenas por meio do meu sistema, e não por outros programas (HeidiSQL, PHPMyAdmin etc). Isso é possível?
Ou quem sabe se de alguma outra forma eu pudesse impedir que o usuário específico do sistema fizesse qualquer coisa que eu não faça no sistema, como, por exemplo, copiar todo o banco de dados. Tem algum jeito de fazer isso?
Você pode começar inspecionando os usuários do seu SGBD com o seguinte comando:
SELECT user, host FROM mysql.user;
Assim, você poderá ver as permissões de cada usuário com o comando:
SHOW GRANTS FOR root@localhost;
Em suma, não existe uma forma única de lidar com isso. Há diversas abordagens possíveis. Por isso, insisto que você estude os conceitos de SGBD. Acredito que a forma mais segura é manter o SGBD isolado da internet. Existem várias estratégias a serem consideradas, dependendo da sua infraestrutura. Entender esses conceitos é fascinante!
Proteção de Banco de Dados MySQL
De fato eu não entendo muito de banco de dados. Estou tentando aprender.
Também é fato que o usuário que uso (inaciocarvalho) é bem semelhante ao root, é um único usuário que uso para tudo. Imagino que isso seja um erro.
Para tentar corrigir isso, imagino que eu tenha que criar outro usuário com acesso limitado para usar no meu programa, deixando o usuário principal (sem limites) apenas para administração do banco, certo? O problema é que, como eu disse no post anterior, parece que todos os comandos serão necessários para esse usuário limitado.
O primeiro comando que vc mandou deu erro.
O segundo dá o retorno da tela anexa.
Ainda não entendi bem como seria esse negócio de manter o banco de dados fora da internet, sendo que eu preciso dele disponível para os usuários, que estão em locais diferentes (não estão na mesma rede).
Recordo que meu banco de dados está numa hospedagem compartilhada do Kinghost.
Também é fato que o usuário que uso (inaciocarvalho) é bem semelhante ao root, é um único usuário que uso para tudo. Imagino que isso seja um erro.
Para tentar corrigir isso, imagino que eu tenha que criar outro usuário com acesso limitado para usar no meu programa, deixando o usuário principal (sem limites) apenas para administração do banco, certo? O problema é que, como eu disse no post anterior, parece que todos os comandos serão necessários para esse usuário limitado.
O primeiro comando que vc mandou deu erro.
O segundo dá o retorno da tela anexa.
Ainda não entendi bem como seria esse negócio de manter o banco de dados fora da internet, sendo que eu preciso dele disponível para os usuários, que estão em locais diferentes (não estão na mesma rede).
Recordo que meu banco de dados está numa hospedagem compartilhada do Kinghost.
- Anexos
-
- tela.png (10.67 KiB) Exibido 7748 vezes
Inacio de Carvalho Neto
