Comment puis-je utiliser les empreintes digitales du navigateur dans mon site web?
je veux identifier les utilisateurs accédant à mon API même s'ils effacent le cookies
ou localstorage
partout où je stocke les informations de la session en cours. Je vois que browser fingerprinting
est l'un des moyens pour atteindre ce jusqu'à une certaine précision. Je suis en train de travailler sur un angular2
projet pour la fronde. J'ai les questions suivantes:
- existe-t-il des bibliothèques disponibles pour angular2 qui créent l'empreinte digitale du navigateur? (J'ai vu ng2-appareil-détecteur de. Ce n'est pas donner beaucoup d'information et aussi pas d'empreinte digitale hachée. Donc, dois-je le hachage de moi-même? )
- vu fingerprintjs2 cela prend beaucoup de l'info, mais n'a pas de mise en œuvre de
angular2
, mais je me demande quelle serait l'importance de l'empreinte digitale? Pour une requête dans mon API, je vérifierai si la charge utile contenait unfingerprint
qui existait déjà dans les sessions existantes? (Vraiment une charge utile? Ce sera unPOST
demande. L'utilisateur peut simplement envoyer une chaîne longue aléatoire comme le hachéfingerprint
et L'API traitera la requête comme si elle venait d'une autre personne.) - je suppose donc que je vais devoir utiliser une API qui non seulement génère un
hashed fingerprint
dans lefrontend
mais valide aussi après que la requête a atteint L'API, quelque chose commeGoogle's reCaptcha
. Existe-il des Api comme tels? - S'il n'y a pas D'API en tant que telle, je suppose que je vais devoir implémenter une telle fonctionnalité dans mon API elle-même?
Veuillez écrire votre suggestion.
2 réponses
1. Il semble qu'il n'y n'est pas toute bibliothèque(portative ou autre) spécialement pour Angular2.
2. vous n'avez pas besoin D'une version Angular2 de celui-ci, il suffit d'injecter le fichier source dans votre index.html et vous pouvez l'utiliser comme ceci, PLUNKER
declare var Fingerprint2: any;
@Component({
selector: 'my-app',
template: `Hello`,
})
export class App {
constructor() {
new Fingerprint2().get(function(result, components){
console.log(result); // a hash, representing your device fingerprint
console.log(components); // an array of FP components
});
}
}
Vous avez à traiter ce hash comme toute autre jeton JWT
, exclusivement ou inclusivement. Mais vous ne besoin de le stocker quelque part, comme tout autre jeton, c'est comme ça que vous pourrez vérifier son authenticité. Si un utilisateur tempère la requête et le hachage, JWT a un mécanisme de validation qui le rend invalide lors de la falsification, mais je suppose que le hachage des empreintes digitales ne peut pas fournir cette sécurité.
3. non, aucun (IMK).
4. Si non.-2 travaille pour vous je suppose que vous serez beaucoup mieux.
Ankit à peu près répondu par rapport à L'angle. Voici une API qui fournit une empreinte digitale pour que vous n'ayez pas besoin de l'implémenter vous-même:
API des empreintes digitales du navigateur
bien que cette solution ne soit pas un composant angulaire (ou quoi-have-you), Vous pouvez faire un appel AJAX pour obtenir l'empreinte digitale et la soumettre à votre serveur.
Divulgation Complète: je suis le développeur de ce service.