Je souhaite identifier les utilisateurs accédant à mon API même s'ils effacent les informations cookies
ou localstorage
à chaque fois que je stocke les informations de la session en cours. Je vois que browser fingerprinting
est l’un des moyens d’y parvenir avec une certaine précision. Je travaille sur un projet angular2
pour le frontend. J'ai les questions suivantes:
angular2
, mais je me demande en quoi l’empreinte digitale hachée est-elle importante? Pour une demande dans mon API, je vérifierai si la charge contient une fingerprint
qui existait déjà dans l'une des sessions existantes? (Vraiment la charge utile? Ce sera simplement une demande POST
. L'utilisateur peut simplement envoyer une longue chaîne aléatoire comme la valeur hachée fingerprint
et l'API traitera la demande comme si elle provenait d'une autre personne.)hashed fingerprint
dans la frontend
, mais valide également une fois que la demande a atteint l'API, quelque chose comme Google's reCaptcha
. Existe-t-il des API de ce type?S'il vous plaît écrivez vos suggestions.
_ {1. Il semble qu'il y ait n'est pas aucune bibliothèque (portée ou non), en particulier pour Angular2.
2. Vous n'avez pas besoin d'une version Angular2, vous devez simplement insérer le fichier source dans votre index.html et vous pourrez 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 devez traiter ce hash comme tout autre jeton comme JWT
, exclusivement ou inclusivement. Mais vous devez le stocker quelque part, comme tout autre jeton, vous pourrez ainsi vérifier son authenticité. Si un utilisateur tempère avec la demande et le hachage, JWT dispose d'un mécanisme de validation qui le rend invalide en cas de falsification, mais je suppose que le hachage par empreinte digitale ne peut pas fournir cette sécurité.
3. Non, aucun (IMK).
4. Si n ° 2 fonctionne pour vous, je suppose que vous serez bien mieux loti.
Ankit a bien répondu à Angular. Voici une API qui fournit une empreinte digitale, vous n'avez donc pas besoin de l'implémenter vous-même:
API d'empreinte digitale de navigateur
Bien que cette solution ne soit pas un composant angulaire (ou ce que vous avez), vous pouvez effectuer un appel AJAX pour obtenir l’empreinte digitale et la soumettre à votre serveur.
Divulgation complète: Je suis le développeur de ce service.