Jump to content
Douglas Öak

Aplicação Cliente/Servidor para Desktop

Recommended Posts

Boa noite.

 

Perdoem-me pela dúvida que para muitos é coisa muito simples. Sou iniciante. Já havia feito aplicação web com acesso a banco de dados MySQL via PHP e sei que os arquivos de configuração para acesso ao banco de dados ficam no lado servidor, sendo retornado apenas os dados necessários ao navegador do usuário, ou seja, o usuário não tem acesso a tais dados. Se o tivesse, poderia ter acesso direto ao banco dados talvez (especulação). Bom, fato é que quando estava criando projeto WPF Application do VisualStudio para acessar banco de dados remotamente, veio a dúvida se colocaria em risco a segurança do servidor, pois, para acesso ao banco de dados o cliente necessita da "ConnectionString" na qual possui os dados de acesso ao servidor MySQL, inclusive a senha. Sendo assim é possível que alguém faça engenharia reversa e encontre a referida String. Então vai a pergunta:

 

Este raciocínio está correto? Há insegurança em fazer o projeto desta maneira? Se sim, qual o método mais recomendado?

 

Desculpem pela pergunta leiga. Obrigado pela atenção.

Share this post


Link to post
Share on other sites

Eu li e entendi sua preocupação que é pertinente.Mas deve levar em consideração que da mesma forma que fazendo engenharia reversa em arquivo compilado,a connection string também pode ser acessada via página PHP (como mostra o exemplo do link https://www.w3schools.com/php/php_mysql_connect.asp).Dessa forma um hacker experiente poderia tanto fraudar uma aplicação compilada da mesma forma que acessar a variável da conecction string de uma pagina PHP.Se você se sentiu seguro em criar aplicações com PHP + Servidor ,seu temor em fazer  uma aplicação cliente (desktop)/servidor deve ser menos temeroso ainda.Pois para um Hacker fraudar um arquivo compilado é mais trabalhoso.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mark1978
      Boa noite srs, tem o código abaixo e esta funcionando normal e carregando o Qrcode no HTML na soma.
      Porém gostaria de alterar e que fosse da seguinte forma:
      Se "totalServico" for menor que "totalProdutos" e diferente de zero então carregue o Qr Code com esse valor
      Se não o valor for "0,00" carregue o valor "totalProdutos". Essa finalidade é para ter uma opção de desconto.
       
      <?php use Piggly\Pix\StaticPayload; class Os_model extends CI_Model { public function getProdutos($id = null) { $this->db->select('produtos_os.*, produtos.*'); $this->db->from('produtos_os'); $this->db->join('produtos', 'produtos.idProdutos = produtos_os.produtos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function getServicos($id = null) { $this->db->select('servicos_os.*, servicos.nome, servicos.preco as precoVenda'); $this->db->from('servicos_os'); $this->db->join('servicos', 'servicos.idServicos = servicos_os.servicos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function valorTotalOS($id = null) { $totalServico = 0; $totalProdutos = 0; if ($servicos = $this->getServicos($id)) { foreach ($servicos as $s) { $totalServico = $totalServico + $s->preco; } } if ($produtos = $this->getProdutos($id)) { foreach ($produtos as $p) { $totalProdutos = $totalProdutos + $p->subTotal; } } return ['totalServico' => $totalServico, 'totalProdutos' => $totalProdutos]; } public function getQrCode($id, $pixKey, $emitente) { if (empty($id) || empty($pixKey) || empty($emitente)) { return; } $result = $this->valorTotalOS($id); $amount = round(floatval($result['totalServico'] + $result['totalProdutos']), 2); if ($amount <= 0) { return; } $pix = (new StaticPayload()) ->applyValidCharacters() ->applyUppercase() ->setPixKey(getPixKeyType($pixKey), $pixKey) ->setMerchantName($emitente->nome, true) ->setMerchantCity($emitente->cidade, true) ->setAmount($amount) ->setTid($id) ->setDescription(sprintf("%s OS %s", $emitente->nome, $id), true); return $pix->getQRCode(); } }  

    • By AndersonWS
      Meu site está caindo muito nos últimos dias. Basicamente acessa e não aparece nada, uma tela em branco. O pessoal da hospedagem falou que tenho que otimizar o banco de dados e que o problema é esse. Acho estranho pois o mesmo site não caia e agora "do nada" tem esse problema. Fiz um teste de tracert no cmd para ver as rotas e deu a mensagem: Esgotado o tempo limite do pedido. Isso me parece o problema e não o banco de dados.
      Otimização do banco tem alguma coisa a ver com essa mensagem?
      Poderia o site por não estar muito otimizado simplesmente não mostrar nada na tela? Não deveria carregar ao menos o html?
      Se não for o local certo da pergunta me perdoem mas como falaram que o problema era o banco de dados postei aqui.
      Grato.
    • By mm_edilson
      Olá. Tenho uma página de login, que salvei como index.php. Quando o usuário entra com login e senha corretos, a página redireciona para outra página, a index2.php. É uma página independente, não sendo viável no meu projeto colocá-la como um include na página principal.
      Tudo funciona. Exceto que, se o usuário, sem logar, digitar o endereço completo da página, ou seja, www.meusite.com.br/index2.php, ela abre normalmente. Como fazer para que ela não abra, se não passar antes pela página de login?
      Esta é minha página index.php:
      </style> <?php include('app/connection.php'); ?> </head> <body> <div id="corpo"> <center><img src="app/img/logo.png" width="500" height="210"></center></div><BR> <div id="paginas"> <?php @session_start(); include('valida_user.php'); ?> </div> Esta é a página valida_user.php
      <?php @session_start(); if(isset($_POST['enviar'])){ $usuario = $_POST['usuario']; $senha = $_POST['senha']; if($usuario ==''){echo "<h4>Por favor, insira um nome de usuário válido</h4>"; }else if($senha ==''){echo "<h4>Por favor, insira sua senha</h4>"; }else{ $sql = "SELECT * FROM usuarios WHERE usuario = '$usuario' AND senha = '$senha' "; $result = mysqli_query($conexao, $sql); if(mysqli_num_rows($result) > 0){ while($res = mysqli_fetch_array($result)){ $ativo = $res['ativo']; $nivel = $res['nivel']; $usuario = $res['usuario']; $senha = $res['senha']; $email = $res['email']; $nome = $res['nome']; $cadastro = $res['cadastro']; header("Location: index2.php"); exit; } }else{ echo "<center><h3>Usuário ou senha inválidos</h3></center>"; } } } ?>  
    • By Xicara
      Olá boa tarde!
       Eu tenho um jogo e um site para cadastro de contas. E agora estou querendo implementar um sistema VIP de preferencia com dias para acabar! No meu  banco de dados do jogo, tenho a tabela: contas com os campos: id / senha / ip / e agora adicionei o campo vip, o valor é de 1 a 5 e já esta funcional no jogo porém esse beneficio está permanente para os jogadores, minha duvida é: o valor do campo vip tem como eu programar para cada 30 dias zerar novamente automático? Não zerar de todos, mais sim daquele que atingiu os 30 dias, eu estava pensando em adicionar mais um campo: data de inicio, será que tem possibilidade por exemplo o site identificar a data e excluir o valor do campo quando atingir os 30 dias?
      Obrigado pela atenção!
    • By BrunoMga07
      Pessoal alguém pode me ajudar em meu projeto, não sei muito de php e mysql mais estou com uma ideia e queria colocar em pratica, se alguém conseguir fazer e quiser combinar um valor me só mandar mensagem.
       
      Quero criar um sistema em que terá as seguintes informações:
      1° Criar conta / logar
       - Tela usuário: Perfil, Trocar Senha, Saldo da conta, recarregar saldo, sacar saldo.
       - Historico de transações.
      2° Menu Horizontal: Inicio , PPP , APOSTA , CONTATO
       - Inicio: Informações que posso adicionar.
       - PPP: pix para pix: aparece um menu vertical mostrando as opção ex:
      1 para 4 - APARECE UMA TABELA EM QUE MOSTRA O PRIMEIRO USUARIO, COM 4 ENVIOS QUE SERÁ EFETUADO POR OUTRAS PESSOAS.
      2 para 8
      3 para 12
      4 para 16
      EXEMPLO
          USUARIO 1
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          USUARIO 2
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          USUARIO 3
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
          ENVIAR  1 PONTO
      Quando o usuario enviar 1 ponto para o usuario 1 ele será adicionado em usuario 2 esperando a vez dele para receber pontos.
      se já tiver um usuario 2 ele será incluido no usuario 3, quando o usuario 1 estiver completo ele será removido da lista
      e podera participar novamento. Só será possivel 1 envio de ponto por usuario.
      algumas regras: se o usuario 1 não estiver completo com 4 envios de 4 usuarios diferente não passa para o usuario 2. e quando algum usuario envia um ponto será removido 1 ponto dele e enviado para o usuario que ele enviou.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.