Empêcher les utilisateurs d'être en mesure d'accéder à une page Web via un navigateur web?

StackOverflow https://stackoverflow.com/questions/2661655

Question

Mon ami et moi travaillons sur un programme. Ce programme va soumettre les données GET à notre page web. Cependant, nous ne voulons pas que les utilisateurs accédant à la page Web d'une autre manière que le programme. Nous pouvons empêcher les utilisateurs de partager le programme en utilisant l'authentification HWID, mais rien ne les empêche d'utiliser un scanner de paquets pour obtenir l'URL de la page Web. Nous avons pensé à l'authentification de l'agent utilisateur, que nous mettrons en œuvre, mais les agents utilisateur peuvent facilement être usurpée.

Alors, ma question est, comment pouvons-nous empêcher les utilisateurs d'accéder à la page Web directement, plutôt que par le programme?

Même si vous ne disposez pas d'une réponse qui va complètement le travail, tout ce qui aide les dissuade serait bien.

À l'heure actuelle, nous appliquerons:

HWID authentification à utiliser le programme User-Agent d'authentification pour accéder à la page web Instantanée IP à Blacklisting quiconque accède à la page Web sans User-Agent approprié

Était-ce utile?

La solution

Ne comptez pas sur l'agent utilisateur ou tout type d'empreinte digitale du navigateur, les en-têtes HTTP sont faciles à falsifier / usurpée.

Vous pouvez ajouter un certain jeton secret (par exemple. Mot de passe / login) à la demande et l'envoyer par SSL pour éviter l'écoute clandestine.

Ou mieux, utiliser un certificat client SSL.

Modifier Vous va distribuer le programme VB? Dans ce cas, comme bobince mentionné, il n'y a aucun moyen que vous pouvez empêcher un pirate déterminé aux demandes de forge. Vous pouvez augmenter la barre, mais il sera sécurité par l'obscurité . Même avec certs client, le pirate sera en mesure d'extraire le cert de votre programme et envoyer des demandes modifiées.

Tant que vous acceptez les demandes du client, ces demandes peuvent être falsifiés. Face.

Autres conseils

Une option est que vous pouvez définir un jeton crypté dans l'en-tête de la requête.

Le jeton peut être utilisé que pour le temps seul. Si le même jeton est envoyé à nouveau le serveur rejeter, des moyens u doivent conserver la copie des jetons utilisés sur le côté serveur.

une option est d'utiliser et de vérifier un en-tête personnalisé qui un navigateur Web n'envoie pas, je l'ai fait une chose similaire pour un programme de mon propre. Faire ontop des autres vérifications que vous faites. Sur Serverside, ont votre script vérifier l'en-tête personnalisé du serveur et simplement rediriger si l'en-tête est erroné

  • essayer de chiffrer toutes les pages Web en utilisant ur les clés d'une longue (plus ou 512 bits), utilisez la balise HWID sous forme de sel.

    De cette façon seulement ur programme peut décoder et rendre comme une page Web.

      

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

  • C # & VB.net ici:

      

    obviex.com/samples/hash.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top