2010-11-20 28 views
3

Imaginez un site Web qui utilise google gears comme mécanisme de stockage pour diverses données au niveau de l'application. Ces données sont répliquées par intermittence avec un serveur utilisant des appels de service Web asynchrones pendant que l'application est active.Identification unique authentique des PC dans les sites Web html

Le problème réside dans le mécanisme de surveillance des abonnements. Imaginez un système d'abonnement à ce service basé sur des PC uniques. Comment un service Web identifie-t-il de manière unique un PC (ou plus précisément un navigateur web) qui synchronise des données avec lui? Ma première idée naturelle était de stocker un GUID dans la base de données locale par machine et de l'envoyer avec la demande, mais si on regarde la documentation de stockage de google gears, on découvre que la base de données est cryptée et peut facilement être falsifiée au fichier sqllite est tout ce qui est requis et peut être accompli en utilisant divers outils).

Ce que je pensais récemment est sûrement qu'il y a un moyen de calculer une signature répétable par machine mais unique en utilisant uniquement javascript? Jusqu'à présent, une implémentation de cela m'a échappé (si seulement navigator.userAgent.uniqueID existait - bien que cela ne ferait pas grand-chose pour la vie privée).

Dernière pensée est évidemment d'écrire un contrôle ActiveX et plug-in Firefox pour fournir cette fonctionnalité, mais ce serait une immense douleur dans le cul ...

Toute autre idée serait apprécié.

Répondre

1

Votre idée d'utiliser un GUID dans la base de données locale n'est pas une mauvaise idée. Vous pouvez développer cela davantage en autorisant le serveur à émettre le GUID pour la base de données locale lorsqu'il est connecté. Enregistrez ensuite le GUID valide pour la réplication sur le serveur. Si cette machine commence le processus de réplication avec un GUID qui correspond à un GUID valide sur le serveur, elle sera autorisée à envoyer ses données. En plus de cela, vous pouvez expirer et ré-émettre des GUID de temps en temps avec les bases de données locales. Enfin, je serais également sage de gérer le nombre de GUID libérés à un seul utilisateur. Si un utilisateur s'authentifie avec le nom d'utilisateur jdoe, la seule personne autorisée à utiliser le GUID délivré à jdoe est jdoe. (Peut-être que le nom d'utilisateur est pas le meilleur identifiant secondaire, mais en utilisant quelque chose comme cela peut vous aider à maintenir des données fausses d'être introduit dans le système)

+0

Le problème avec cette approche est qu'il traite des utilisateurs simultanés plutôt que PC unique de bien vraiment , à partir d'un point de souscription de vous peut-être je ne devrais pas m'en préoccuper .... Vraiment comme l'idée de changer le guid souvent. Je n'ai pas traversé mon esprit. Toutes les autres suggestions ont également été prises en compte. –