L'activation à distance / désactivation et la protection contre la faillite

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

  •  09-09-2019
  •  | 
  •  

Question

Je suis responsable d'une application qui utilise Internet pour transférer des données entre les sites, et certains clients sont maladroits à payer, donc nous avons besoin d'un mécanisme qui nous permettra de couper le service des non-payeurs. Je voudrais protéger contre le peuple d'administration à l'aide des pare-feu pour bloquer nos contrôles, mais à l'inverse, je voudrais donner une certaine marge pour notre site Web de la société disparaître pour une raison quelconque et ne pas être accessibles.

Le schéma que je me fais est:

server makes twice daily check to web page using a URL like:
http://www.ourcompany.com/check.php?myID=GUID&Code=MyCode

puis renvoie une réponse qui contient soit rien d'intéressant, ou le GUID et une valeur.

GUID=0

Ce zéro indique que le serveur doit cesser de fonctionner. Pour le rendre à nouveau fonctionner, le serveur vérifie toutes les 5 minutes pour la même information, jusqu'à ce que la valeur correspond à ce qu'il pense le code qu'il a passé en devrait être transformé en.

Ce système me semble logique, mais la question est vraiment comment se protéger contre le blocage. Étant donné que nous savons que nous devons avoir accès à Internet, combien de temps devrions-nous continuer à fonctionner sans être en mesure d'obtenir la réponse de notre serveur web? Est-ce quelque chose comme 14 jours, puis nous fermons juste hors de toute façon la meilleure façon?

Était-ce utile?

La solution

La solution je à la fin était à peu près comme je l'ai suggéré. Oui, il est désactivable à l'aide des outils décrits ici, mais il vaut mieux que rien.

Les contrôles d'applications par jour pour accéder à un site Web qui contient un fichier de contrôle crypté en utilisant le chiffrement à clé publique. Il déchiffre en mémoire, et si elle trouve son GUID, il doit correspondre à un code. Pour désactiver l'opération, le code est réglé sur 0 (zéro) qui échouera toujours. Lorsqu'il est désactivé, il vérifie toutes les deux minutes pour permettre la restauration rapide. Il y a aussi un mécanisme manuel pour générer un code qui fonctionnera pendant une semaine en cas de problème de serveur.

Le code permettra jusqu'à 14 jours sans se connecter au serveur avant qu'elle ne prenne cela comme une tentative délibérée de bloquer. Au bout de 10 jours, il affiche un message d'erreur qui leur demande de contacter le support technique.

Autres conseils

Cette méthode est très facile à contourner: il suffit d'utiliser un serveur dns local pour pointer www.ourcompany.com sur la machine locale, ou utiliser un proxy http. Ensuite, l'utilisateur peut revenir tout réponse qu'ils veulent le programme.

En supposant que l'utilisateur n'a pas contourné le chèque, combien de temps vous devez continuer à fonctionner sans confirmation est une décision d'affaires et non une décision de programmation.

Un utilisateur peut utiliser un outil tel que OWASP WebScarab pour modifier les valeurs à la volée pour subvertir votre modèle de sécurité. Vous devez inclure quelque chose de plus difficile, comme nécessitant un canal sécurisé, en comparant la clé publique et ainsi de suite.

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