Pergunta

Meu amigo e eu estamos trabalhando em um programa. Este programa enviará dados Obt Get para nossa página da Web. No entanto, não queremos que os usuários acessem a página da web de outra maneira que não o programa. Podemos impedir que os usuários compartilhem o programa usando a autenticação HWID, mas nada os impede de usar um scanner de pacotes para obter o URL da página da web. Pensamos em autenticação agente do usuário, que implementaremos, mas os agentes do usuário podem ser facilmente falsificados.

Então, minha pergunta é: como podemos impedir que os usuários acessem diretamente a página da web, em vez de através do programa?

Mesmo se você não tiver uma resposta que funcione completamente, qualquer coisa que ajude a impedi -los seria legal.

Atualmente estaremos implementando:

Autenticação HWID para usar a autenticação do agente de usuário do programa para acessar a página da web instantânea IP BlackListing para qualquer pessoa que acesse a página da web sem o agente de usuário adequado

Foi útil?

Solução

Não confie no agente do usuário ou em qualquer tipo de impressão digital do navegador, os cabeçalhos HTTP são facilmente forjados/falsificados.

Você pode adicionar algum token secreto (por exemplo, senha/login) à solicitação e enviá -la através do SSL para evitar a escuta.

Ou melhor, use um certificado de cliente SSL.

Editar Você vai distribuir o programa VB? Nesse caso, como Bobince mencionou, não há como impedir um hacker determinado para forjar solicitações. Você pode elevar a fasquia, mas será segurança através da obscuridade. Mesmo com os certificados de clientes, o hacker poderá extrair o certificado do seu programa e enviar solicitações modificadas.

Desde que você aceite solicitações do cliente, essas solicitações podem ser forjadas. Lide com isso.

Outras dicas

Uma opção é que você pode definir um token criptografado no cabeçalho da solicitação.

O token pode ser usado apenas por um único tempo. Se o mesmo token for enviado novamente, o servidor o rejeitará, significa que você terá que manter a cópia dos tokens utilizados no lado do servidor.

Uma opção é usar e verificar um cabeçalho personalizado que um navegador da Web não envia, fiz uma coisa semelhante para um programa próprio. Faça isso no Ontop das outras verificações que você está fazendo. No servidor, peça ao seu script de servidor que verifique o cabeçalho personalizado e simplesmente redirecione se o cabeçalho estiver errado

  • Tente criptografar todas as suas páginas da web usando a chave longa (512bits ou mais) use o Hwid como um sal.

    Dessa forma, apenas o seu programa pode decodificá -lo e renderizá -lo como uma página da web.

    en.wikipedia.org/wiki/salt_%28cryptography%29

  • C# & vb.net aqui:

    obiex.com/samples/hash.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top