Proteção de Banco de Dados MySQL
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Proteção de Banco de Dados MySQL
Olá!
Olha ai o que provavelmente ele fez. Grande proteção.
Ninguém que está te ensinando essa coisa(criptografar strings) faz isso.
Não seja o primeiro a fazer, pois de qualquer lugar que desejar puxar os dados vai precisar passar o algoritmo para descriptografar.
Os dados pertencem a quem digita não pertencem a você.
Saudações,
Itamar M. Lins Jr.
Olha ai o que provavelmente ele fez. Grande proteção.
Ninguém que está te ensinando essa coisa(criptografar strings) faz isso.
Não seja o primeiro a fazer, pois de qualquer lugar que desejar puxar os dados vai precisar passar o algoritmo para descriptografar.
Os dados pertencem a quem digita não pertencem a você.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Proteção de Banco de Dados MySQL
Sim, o problema é que nossa rede tem milhares (sem exagero) de computadores. Qualquer pessoa em qualquer desses computadores tem acesso ao meu computador pela rede. É impossível eu impedir que o hacker acesse o meu computador.
Por isso, preciso de um jeito de impedir que o hacker consiga acessar o meu banco de dados (que está no provedor, não na rede).
Toda ajuda é bem-vinda.
Por isso, preciso de um jeito de impedir que o hacker consiga acessar o meu banco de dados (que está no provedor, não na rede).
Toda ajuda é bem-vinda.
Inacio de Carvalho Neto
- 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
Olá!
Pra ter a segurança que vc quer, o seu servidor onde está seu banco, não deve dar acesso externo, somente local mesmo, mas aí vc pensa q isso é loucura, como os outros vão acessar o banco de dados ou outros serviços, tipo PHP, Python e etc???
A solução é usar a arquitetura MVC, sigla do termo em inglês Model (modelo) View (visão) e Controller (Controle), já usamos aqui em alguns projetos, e aí vc vai ter que ajustar muita coisa na sua solução desktop, e somado a isso, uma solução para transacionar os dados, que seria uma API RESTful "é uma interface que dois sistemas de computador usam para trocar informações de forma segura pela internet. A maioria das aplicações de negócios precisa se comunicar com outras aplicações internas e de terceiros para executar várias tarefas." (peguei esse conceito da internet).
Aí é estudar muito essa arquitetura, pois se vc der qq acesso externo a seu servidor(es), pode ter certeza q alguém vai invadir um dia, nem que seja com ataques de força bruta, DoS e DDoS.
Foi muito trabalhoso e custoso implantar tudo isso aqui na minha empresa e confesso que nem sou eu o pai da criança, é meu sócio, que basicamente é focado somente nisso e toma 200% do tempo dele.
Mas depois vem as vantagens, pois como já temos toda a estrutura de servidores em Cloud na AWS, não temos nenhum servidor na empresa mais, já foi tudo pro lixo, bom voltando, caso eu queira acessar determinada tabela de um determinado DB, com um app desktop, é só ajustar nossa API pra receber as requisições via protocolo HTTP (Request) e tratar a resposta (Response) que vem em JSON.
Um exemplo de API de terceiros que uso com um app Desktop, é consulta a CNPJ, onde o fornecedor tem um WS ligado direto, esperando as requisições.
Link: http://receitaws.com.br/v1/cnpj/
O serviço para consulta do CNPJ está ligado 7 dias por semana, 24 horas por dia, esperando alguma requisição, não importando de onde ela venha, se de um navegador, tablet, PC, se mandou a requisição correta, ela vai ser processada e retornada uma resposta.
A API na verdade é uma aplicação desenvolvida em qualquer linguagem, VB, C#, C++, Node, Python, Java ou outra qualquer, que fica ligada no servidor esperando as requisições.
Espero ter ajudado, Abraços.
Pra ter a segurança que vc quer, o seu servidor onde está seu banco, não deve dar acesso externo, somente local mesmo, mas aí vc pensa q isso é loucura, como os outros vão acessar o banco de dados ou outros serviços, tipo PHP, Python e etc???
A solução é usar a arquitetura MVC, sigla do termo em inglês Model (modelo) View (visão) e Controller (Controle), já usamos aqui em alguns projetos, e aí vc vai ter que ajustar muita coisa na sua solução desktop, e somado a isso, uma solução para transacionar os dados, que seria uma API RESTful "é uma interface que dois sistemas de computador usam para trocar informações de forma segura pela internet. A maioria das aplicações de negócios precisa se comunicar com outras aplicações internas e de terceiros para executar várias tarefas." (peguei esse conceito da internet).
Aí é estudar muito essa arquitetura, pois se vc der qq acesso externo a seu servidor(es), pode ter certeza q alguém vai invadir um dia, nem que seja com ataques de força bruta, DoS e DDoS.
Foi muito trabalhoso e custoso implantar tudo isso aqui na minha empresa e confesso que nem sou eu o pai da criança, é meu sócio, que basicamente é focado somente nisso e toma 200% do tempo dele.
Mas depois vem as vantagens, pois como já temos toda a estrutura de servidores em Cloud na AWS, não temos nenhum servidor na empresa mais, já foi tudo pro lixo, bom voltando, caso eu queira acessar determinada tabela de um determinado DB, com um app desktop, é só ajustar nossa API pra receber as requisições via protocolo HTTP (Request) e tratar a resposta (Response) que vem em JSON.
Um exemplo de API de terceiros que uso com um app Desktop, é consulta a CNPJ, onde o fornecedor tem um WS ligado direto, esperando as requisições.
Link: http://receitaws.com.br/v1/cnpj/
Código: Selecionar todos
//A título de exemplo, sem compiação e testes.
//Passa um CNPJ para uma função de consulta e retorna um Hash com os dados do CNPJ para ser processado no DBF
Function Main()
If Len( Trim(cCnpj) ) <> 14
REturn .t.
Endif
hCnpj := CNPJ_Consulta( cCnpj )
If hCnpj <> NIL
If Len(hCnpj) > 2
If nOpMenu = INCLUSAO
ccr_nome := PadR( cl_NulToString(hCnpj["nome"]), Len(ccr_nome) )
ccr_fantas := PadR( cl_NulToString(hCnpj["fantasia"]), Len(ccr_fantas) )
If Ptab( cl_NulToString(hCnpj["municipio"]), 'TBM', 2)
tbm_codigo := TBM->tbm_codigo
Endif
ccr_cep := PadR( cl_LimpaString( hCnpj["cep"]) , Len(ccr_cep) )
ccr_lograd := PadR( cl_NulToString(hCnpj["logradouro"]) , Len(ccr_lograd) )
ccr_numero := PadR( cl_NulToString(hCnpj["numero"]) , Len(ccr_numero) )
ccr_comple := PadR( cl_NulToString(hCnpj["complemento"]), Len(ccr_comple) )
ccr_bairro := PadR( cl_NulToString(hCnpj["bairro"]) , Len(ccr_bairro) )
ccr_cidade := PadR( cl_NulToString(hCnpj["municipio"]) , Len(ccr_cidade) )
ccr_uf := PadR( cl_NulToString(hCnpj["uf"]) , Len(ccr_uf) )
ccr_fones := PadR( cl_NulToString(hCnpj["telefone"]) , Len(ccr_fones) )
ccr_email := PadR( cl_NulToString(hCnpj["email"]) , Len(ccr_email) )
x := hCnpj["atividade_principal"]
cna_codigo := cl_LimpaString( x[1]["code"] )
x := aScan( aEmpresaTipo, { | a | Trim(Upper(a[2])) = cl_NulToString(hCnpj["porte"]) })
If x > 0
ccr_ETipo := aEmpresaTipo[x, 1]
Endif
Else
If LastKey() = 32 //K_F8
CCR->ccr_nome := hCnpj["nome"]
CCR->ccr_fantas := PadR( cl_NulToString(hCnpj["fantasia"]), Len(ccr_fantas) )
If Ptab( cl_NulToString(hCnpj["municipio"]), 'TBM', 2)
CCR->tbm_codigo := TBM->tbm_codigo
Endif
CCR->ccr_cep := PadR( cl_LimpaString( hCnpj["cep"]) , Len(ccr_cep) )
CCR->ccr_lograd := PadR( cl_NulToString(hCnpj["logradouro"]) , Len(ccr_lograd) )
CCR->ccr_numero := PadR( cl_NulToString(hCnpj["numero"]) , Len(ccr_numero) )
CCR->ccr_comple := PadR( cl_NulToString(hCnpj["complemento"]), Len(ccr_comple) )
CCR->ccr_bairro := PadR( cl_NulToString(hCnpj["bairro"]) , Len(ccr_bairro) )
CCR->ccr_cidade := PadR( cl_NulToString(hCnpj["municipio"]) , Len(ccr_cidade) )
CCR->ccr_uf := PadR( cl_NulToString(hCnpj["uf"]) , Len(ccr_uf) )
CCR->ccr_fones := PadR( cl_NulToString(hCnpj["telefone"]) , Len(ccr_fones) )
CCR->ccr_email := PadR( cl_NulToString(hCnpj["email"]) , Len(ccr_email) )
x := hCnpj["atividade_principal"]
CCR->cna_codigo := cl_LimpaString( x[1]["code"] )
x := aScan( aEmpresaTipo, { | a | Trim(Upper(a[2])) = cl_NulToString(hCnpj["porte"]) })
If x > 0
CCR->ccr_ETipo := aEmpresaTipo[x, 1]
Endif
msg := 'Dados do Credor/Fornecedor atualizados automaticamente de acordo com o encontrado no site da Receita Federal.'
MsgOK( msg )
Endif
Endif
Else
msg := 'não foi possível atualizar dados do Credor/Fornecedor.'
MsgAtencao( msg )
Endif
Endif
Return
////////////////////////////////////////////////////////////////////////////////
//https://pctoledo.org/forum/viewtopic.php?f=43&p=155455#p155455
//https://pctoledo.org/forum/viewtopic.php?f=4&t=23628 (com Header)
//https://pctoledo.org/forum/viewtopic.php?f=4&t=17427 (usando a hb_JSONDecode( cJSON, @hJSON ) )
//https://nfe.io/docs/desenvolvedores/rest-api/consulta-de-cnpj-v1/ (para consultas)
//https://pctoledo.org/forum/viewtopic.php?f=4&p=148594#p148594 (pode fazer FTP)
Function CNPJ_Consulta( cCnpj )
Local mSite := "http://receitaws.com.br/v1/cnpj/", oHttp, hCNPJA := Hash(), mJSONCNPJ, hJSON := Hash()
//mSite := "https://publica.cnpj.ws/cnpj/" //mais completo
If Len( Trim(cCnpj) ) <> 14 .or. cCnpj = '00000000000000' .or. !VCGC(cCnpj)
Return NIL
Endif
Begin Sequence
Try
oHttp := CreateObject("MSXML2.ServerXMLHTTP")
oHttp:Open("GET", mSite + cCNPJ, .F.)
oHttp:send()
CATCH oError
msg := 'Internet Error: 010' + CRLF
msg += 'Aviso..: Erro verificado ao fazer requisição de CNPJ no Site indicado.' + HB_Eol()
msg += 'Site...: ' + mSite + HB_Eol()
msg += 'CNPJ...: ' + cCNPJ + HB_Eol()
msg += cl_getError(oError, .t.)
msgError ( msg )
hCNPJA := NIL
Break
End
If Empty( oHttp:responseText )
hCNPJA := NIL
Break
ElseIf '"ERROR"' $ oHttp:responseText
msg := 'Request error: 015' + CRLF
msg += 'Aviso..: O retorno da consulta de CNPJ está com erros.' + HB_Eol()
msg += '- Aguarde um minuto e tente novamente.' + HB_Eol()
msg += '- Verifique se o CNPJ é válido.' + HB_Eol()
msg += 'Site...: ' + mSite + HB_Eol()
msg += 'CNPJ...: ' + cCNPJ + HB_Eol()
msg += 'Response:' + oHttp:responseText + HB_Eol()
msg += 'Status..:' + Str(oHttp:status, 3) + HB_Eol()
msg += cl_getError(, .t.)
MsgError ( msg, .t. )
hCNPJA := NIL
Break
ElseIf 'Too many' $ oHttp:responseText
msg := 'Request error: 020' + CRLF
msg += 'Aviso..: Muitas tentativas de pesquisar CNPJ no Site indicado.' + HB_Eol()
msg += '- Aguarde um minuto e tente novamente.' + HB_Eol()
msg += 'Site...: ' + mSite + HB_Eol()
msg += 'CNPJ...: ' + cCNPJ + HB_Eol()
msg += 'Response:' + oHttp:responseText + HB_Eol()
msg += 'Status..:' + Str(oHttp:status, 3) + HB_Eol()
MsgAtencao ( msg )
hCNPJA := NIL
Break
Endif
mJSONCNPJ := HB_AnsiToOem(oHttp:responseText)
hCNPJA := JSonToHash( mJSONCNPJ )
If hCNPJA = NIL
ADOStringGrava(mJSONCNPJ + CRLF)
Endif
oHttp := NIL
End Sequence
Return hCNPJA
A API na verdade é uma aplicação desenvolvida em qualquer linguagem, VB, C#, C++, Node, Python, Java ou outra qualquer, que fica ligada no servidor esperando as requisições.
Espero ter ajudado, 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
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Proteção de Banco de Dados MySQL
Olá!
Saudações,
Itamar M. Lins Jr.
Quem é o provedor ? Onde fica fisicamente ?que está no provedor,
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Proteção de Banco de Dados MySQL
O provedor é o KingHost, se não me engano, ele é sitiado no RS. Mas isso faz diferença?
Clodoaldo, vc está dizendo que o banco fica negado para acesso a terceiros e mesmo assim vc consegue fazer a consulta a ele de qualquer lugar? Como seria isso? Não entendi bem o exemplo que vc postou. Poderia me esclarecer isso, por favor?
Clodoaldo, vc está dizendo que o banco fica negado para acesso a terceiros e mesmo assim vc consegue fazer a consulta a ele de qualquer lugar? Como seria isso? Não entendi bem o exemplo que vc postou. Poderia me esclarecer isso, por favor?
Inacio de Carvalho Neto
- 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, Inácio.
Outra coisa, vc fez um teste, se editando de Executável com o NotePad++, consegue achar as suas variáveis de acesso ao seu DB, por exemplo:
var "mServidor", var "mSenha", faça uma busca e veja se consegue achar, se sim, vc vai entender q qq um q editar seu executável vai poder achar o endereço do seu servidor e possivelmente sua senha.
No fonte, vc coloca:
Veja que no exemplo acima vc tem duas Strings com valores reservados nela, daí, se vc editar se .EXE, e fazer uma busca pelo conteúdo da variáveis, vai perceber que é uma vulnerabilidade salvar senhas como Strings.
Abraços.
Numa breve consulta, vi uma explicação muito boa nesse link: https://www.hostgator.com.br/blog/api-restful/cjp escreveu:O provedor é o KingHost, se não me engano, ele é sitiado no RS. Mas isso faz diferença?
Clodoaldo, vc está dizendo que o banco fica negado para acesso a terceiros e mesmo assim vc consegue fazer a consulta a ele de qualquer lugar? Como seria isso? Não entendi bem o exemplo que vc postou. Poderia me esclarecer isso, por favor?
Outra coisa, vc fez um teste, se editando de Executável com o NotePad++, consegue achar as suas variáveis de acesso ao seu DB, por exemplo:
var "mServidor", var "mSenha", faça uma busca e veja se consegue achar, se sim, vc vai entender q qq um q editar seu executável vai poder achar o endereço do seu servidor e possivelmente sua senha.
No fonte, vc coloca:
Código: Selecionar todos
mServidor := "http://meusite.com.br"
mSenha := "123456"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
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Proteção de Banco de Dados MySQL
Olá!
Vc ainda não entendeu, alguém deu para ele acesso ao kinghost. Não tem problema com seu aplicativo.
Importa saber quem é que tem acesso a suas bases de dados, esteja ela onde for, pensei que era só vc que tinha acesso, mas vc nem sabe onde sua base SE ENCONTRA e quer proteger. Esse hacker ai pode até apagar ela...
Saudações,
Itamar M. Lins Jr.
Se esse hacker tem acesso ao kinghost ele vai copiar mesmo.se não me engano
Vc ainda não entendeu, alguém deu para ele acesso ao kinghost. Não tem problema com seu aplicativo.
Importa saber quem é que tem acesso a suas bases de dados, esteja ela onde for, pensei que era só vc que tinha acesso, mas vc nem sabe onde sua base SE ENCONTRA e quer proteger. Esse hacker ai pode até apagar ela...
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Proteção de Banco de Dados MySQL
Código: Selecionar todos
Se esse hacker tem acesso ao kinghost ele vai copiar mesmo.
Vc ainda não entendeu, alguém deu para ele acesso ao kinghost. Não tem problema com seu aplicativo.
Importa saber quem é que tem acesso a suas bases de dados, esteja ela onde for, pensei que era só vc que tinha acesso, mas vc nem sabe onde sua base SE ENCONTRA e quer proteger. Esse hacker ai pode até apagar ela...Ele acessou pela rede um computador que tinha o programa instalado e obteve acesso ao banco de dados. Não sei exatamente como (se pegou a senha no .exe, ou se de outra forma), sei apenas que ele usou um programa (não sei qual) para salvar todo o meu banco de dados no computador dele. No pouco que sei, entendi que ele, com esse programa, capturou a porta de acesso ao banco de dados que o programa estava usando e acessou diretamente o banco de dados, não necessariamente obteve a senha.
Ao contratar um provedor, eu preciso saber onde a base de dados é armazenada? Isso faz diferença?
Vou estudar isso.Numa breve consulta, vi uma explicação muito boa nesse link: https://www.hostgator.com.br/blog/api-restful/
Editei o .exe e achei sim a senha. Embora eu não salve dessa forma, mas, como eu sei a senha, foi fácil achar, bastou procurar pela senha. Quem não sabe a senha não acharia tão fácil assim.Outra coisa, vc fez um teste, se editando de Executável com o NotePad++, consegue achar as suas variáveis de acesso ao seu DB, por exemplo:
var "mServidor", var "mSenha", faça uma busca e veja se consegue achar, se sim, vc vai entender q qq um q editar seu executável vai poder achar o endereço do seu servidor e possivelmente sua senha.
No fonte, vc coloca:
Veja que no exemplo acima vc tem duas Strings com valores reservados nela, daí, se vc editar se .EXE, e fazer uma busca pelo conteúdo da variáveis, vai perceber que é uma vulnerabilidade salvar senhas como Strings.
Mas a questão é: como mudar isso? Como eu conseguiria não colocar a senha no .exe, e ainda assim permitir que os usuários do programa acessassem o banco de dados.
Inacio de Carvalho Neto
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Proteção de Banco de Dados MySQL
use o velho CHR(XX) + CHR(XX) + CHR(XX)cjp escreveu: Editei o .exe e achei sim a senha. Embora eu não salve dessa forma, mas, como eu sei a senha, foi fácil achar, bastou procurar pela senha. Quem não sabe a senha não acharia tão fácil assim.
Mas a questão é: como mudar isso? Como eu conseguiria não colocar a senha no .exe, e ainda assim permitir que os usuários do programa acessassem o banco de dados.
Onde o XX é o ascii da letra, da uma complicada para achar
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Proteção de Banco de Dados MySQL
Olá!
Enfim basta criptografar a senha no exe que é mais fácil e resolve seu problema. A outra parte é saber quem tem acesso ao kinghost.
Se ele copia suas bases de dados é pq ele tem acesso físico aos computadores. Não é pq ele é hacker.
Saudações,
Itamar M. Lins Jr.
Faz diferença saber quem tem acesso. Se vc me der acesso ao provedor eu posso apagar tudo, etc...Ao contratar um provedor, eu preciso saber onde a base de dados é armazenada? Isso faz diferença?
Enfim basta criptografar a senha no exe que é mais fácil e resolve seu problema. A outra parte é saber quem tem acesso ao kinghost.
Se ele copia suas bases de dados é pq ele tem acesso físico aos computadores. Não é pq ele é hacker.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Proteção de Banco de Dados MySQL
cjp escreveu:Código: Selecionar todos
Se esse hacker tem acesso ao kinghost ele vai copiar mesmo... [/quote] Amigo como funciona a sua estrutura, vc tem uma máquina nuvem, que foi instalada por vc? Qual sistema operacional dela? Os executaveis que acessam essa máquina, estão lá nela ou podem estar em qualquer computador? O básico da segurança, é ter um sistema operacional atualizado e que seja mais seguro possível, eu gosto por exemplo de usar freebsd nos servidores em nuvem, a partir dai por exemplo, se tenho um banco de dados que só é acessado por site, uso postgresql, eu limito no arquivo de configuração do banco que só pode ser acessado por localhost, nesse caso só os sites hospedados no mesmo servidor tem acesso, como preciso acessar da empresa onde trabalho acrescento o ip da empresa tbm, e além da proteção direto no banco, adiciono no firewall da nuvem pra só acessar conexões desse ip da empresa, ou seja, se algum hacker quiser acessar, vai ter que ser usando algum computador da empresa, e mesmo assim, só vai acessar o que os programas conseguem acessar, a não ser que use alguma vunerabilidade das linguagens como php, java e etc, mas ai já tá além do meu trabalho, eu preciso manter sempre atualizado o sistema operacional e as ferramentas de linguagem. Se o servidor não estiver na nuvem, vc precisa evitar que tenha acesso físico ao mesmo, se não for possível não tem como dar proteção.
Proteção de Banco de Dados MySQL
Gostei dessa ideia. Vou fazer isso. Embora ache que isso só não resolva. Como disse, não creio que o hacker tenha pego a senha no meu .exe, acho que ele pegou acesso direto ao banco de dados por meio desse programa que usou a porta que já estava aberta pelo meu sistema na rede.use o velho CHR(XX) + CHR(XX) + CHR(XX)
Onde o XX é o ascii da letra, da uma complicada para achar
Eu não dei acesso físico ao kinghost pra ninguém. Ele acessou por meio do computador dele, que está na mesma rede da minha organização, onde tenho meu programa instalado. Ao que sei, só quem tem acesso ao kinghost é o pessoal da própria kinghost.Faz diferença saber quem tem acesso. Se vc me der acesso ao provedor eu posso apagar tudo, etc...
Enfim basta criptografar a senha no exe que é mais fácil e resolve seu problema. A outra parte é saber quem tem acesso ao kinghost.
Se ele copia suas bases de dados é pq ele tem acesso físico aos computadores. Não é pq ele é hacker.
Tenho apenas uma hospedagem compartilhada no kinghost (ver: https://king.host/hospedagem-de-sites). Não sei qual o sistema operacional da máquina, e não tenho controle sobre ela. Já conversei com o pessoal do Kinghost sobre essa invasão, eles alegam que não são responsáveis, que o problema ocorreu aqui, não com eles.Amigo como funciona a sua estrutura, vc tem uma máquina nuvem, que foi instalada por vc? Qual sistema operacional dela? Os executaveis que acessam essa máquina, estão lá nela ou podem estar em qualquer computador?
O básico da segurança, é ter um sistema operacional atualizado e que seja mais seguro possível, eu gosto por exemplo de usar freebsd nos servidores em nuvem, a partir dai por exemplo, se tenho um banco de dados que só é acessado por site, uso postgresql, eu limito no arquivo de configuração do banco que só pode ser acessado por localhost, nesse caso só os sites hospedados no mesmo servidor tem acesso, como preciso acessar da empresa onde trabalho acrescento o ip da empresa tbm, e além da proteção direto no banco, adiciono no firewall da nuvem pra só acessar conexões desse ip da empresa, ou seja, se algum hacker quiser acessar, vai ter que ser usando algum computador da empresa, e mesmo assim, só vai acessar o que os programas conseguem acessar, a não ser que use alguma vunerabilidade das linguagens como php, java e etc, mas ai já tá além do meu trabalho, eu preciso manter sempre atualizado o sistema operacional e as ferramentas de linguagem.
Se o servidor não estiver na nuvem, vc precisa evitar que tenha acesso físico ao mesmo, se não for possível não tem como dar proteção.
Inacio de Carvalho Neto
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Proteção de Banco de Dados MySQL
Olá!
Olhe ai sujeito... A pessoa pode ter acesso a essa tela. Não está no seu computador não entendeu ?
Saudações,
Itamar M. Lins Jr.
Olhe ai sujeito... A pessoa pode ter acesso a essa tela. Não está no seu computador não entendeu ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
Proteção de Banco de Dados MySQL
Sim, não está no meu computador, está no provedor.
Mas, para ter acesso a essa tela, precisa da senha de acesso ao Kinghost. Esta nem está no meu .exe, só eu tenho.
Mas, para ter acesso a essa tela, precisa da senha de acesso ao Kinghost. Esta nem está no meu .exe, só eu tenho.
Inacio de Carvalho Neto
- 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
Olá Inácio.
Pra ajudar na idéia do Fernando.
Abraços.
Pra ajudar na idéia do Fernando.
Código: Selecionar todos
/////////////////////////////////////////////////////////////////////////////
//Retorna uma string com os valores ASCii de uma sequˆncia de caracteres, formadada com CHR(xx)+
Function RetornaCHRString(cString)
Local r := ''
For i := 1 To Len(cString)
r += 'CHR(' + LTrim(Str(ASC( SubStr(cString, i, 1) ) )) + ') + '
Next
Return r
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
