現在のセッション情報を保存している場所でcookies
またはlocalstorage
をクリアしても、APIにアクセスするユーザーを特定したい。 browser fingerprinting
は、これをある程度の精度まで達成する方法の1つであることがわかります。フロントエンドのangular2
プロジェクトに取り組んでいます。次の質問があります。
angular2
の実装はありませんが、ハッシュされた指紋は実際にどのように重要なのでしょうか? APIのリクエストの場合、既存のセッションのいずれかに既に存在するfingerprint
がペイロードに含まれているかどうかを確認しますか? (本当にペイロードですか?それはただPOST
リクエストです。ユーザーはハッシュされたfingerprint
としてランダムな長い文字列を送信するだけで、APIはリクエストを別の人から来たかのように扱います。 )frontend
でhashed fingerprint
を生成するだけでなく、Google's reCaptcha
などのリクエストがAPIに到達した後に検証するAPIを使用する必要があると思います。そのようなAPIはありますか?あなたの提案を書いてください。
1。そこにあるようですis n't特にAngular2のライブラリ(移植またはその他)。
2。 Angular2バージョンは不要です。ソースファイルをindex.htmlに挿入するだけで、このように使用できます - [〜#〜] 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
});
}
}
このhashは、JWT
のような他のトークンとして、排他的または包括的に扱う必要があります。ただし、他のトークンと同様に、どこかに保存する必要があります。それが、その真正性を確認できる方法です。ユーザーがリクエストとハッシュを調整する場合、JWTには改ざん時に無効にする検証メカニズムがありますが、フィンガープリントハッシュはその安全性を提供できないと思います。
。いいえ、なし(IMK)。
4。もしno.-2があなたのために働くなら、私はあなたがはるかに良くなると思います。
Ankitは、Angularに関連してほとんど答えました。フィンガープリントを提供するAPIを次に示しますので、自分で実装する必要はありません。
この解決策はAngularコンポーネント(またはwhat-have-you)ではありませんが、AJAXを呼び出して指紋を取得し、サーバ。
完全な開示:私はこのサービスの開発者です。