私は、開発者のネットワークタブでXHRリクエストを表示するだけで、角度2アプリのAPIのエンドポイントにアクセスできることに気付きました。ツール、およびトークンにアクセスするには、console.log(localStorage.getItem('token'))
を記録してトークンを取得します。とにかくこれを防ぐことができるのでしょうか?Angular 2.xアプリでAPIを保護する
答えて
あなたはWebリクエストでトークンを見てからユーザーを防ぐことができます方法はありませんが、それは時間やエネルギー価値がないようにあなたがそれを確保することができます多くの方法があり、 1つのトークンをクラックする正しく、安全に使用されていれば、セキュリティの欠陥とはみなされません。
たとえばJSON Webトークン(JWT)を使用すると、トークンデータが秘密鍵でハッシュされます。あなたのアルゴリズムと秘密鍵を慎重に選択すると、トークンの存続期間内にトークンを分解することは基本的に不可能です(有効期限を設定した場合)。
JWTを使用している私のプロジェクトの1つでは、トークンでJWT ID(JTI)値をランダムに生成し、さらに別の秘密鍵でハッシュし、httpOnlyというクッキー値として保存します。そうすれば、たとえJWTが侵害されても、JWT IDが一致しないため、別のマシンやブラウザでもJWTを使用することはできません。
トークンが常にクライアントに公開されているため、この問題を回避できる方法はないと思います。あなたが行うことができる唯一のことは、クライアントがN秒/分ごとにトークンをリフレッシュするようにトークンライフタイムを制限することです。
このアプローチでさらにハードコアにしたい場合は、トークンのライフタイムを短く設定できるため、リクエストごとに有効期限が切れます。その場合、トークンが盗まれた場合、誰かがそのトークンであなたのAPIにアクセスしようとすると動作しません。この方法では、apiサーバーにアクセスするたびに、サーバーに新しいトークンを要求する必要があります。また、あなたのアプリケーションが信頼できるクライアントであるため、各応答のヘッダーに新しいトークンを提供するサーバーによって達成できます。
あなたがそのようなソリューションを構築している場合、あなたが XSRFに注意する必要があり、角が実際にあなたがHttpClientModule
で使用することができますHttpClientXsrfModuleから来るCookie-to-header tokenため サポートでビルドを持っていることいくつかの有用な資源:
- 1. Angular 2クライアント側アプリケーションでAPIキーを非表示/保護する方法は?
- 2. .NET Framework 4.x Web APIをIDサーバー4で保護する
- 3. Asp.Net Core + Angular =ログインせずにApiを保護する
- 4. Azure APIを保護する
- 5. RESTful APIを保護する
- 6. API CSRF保護
- 7. Node.jsのAPIルートを保護する
- 8. Grails:OAuth2.0でREST APIを保護
- 9. HTTPリクエストでAPIキーを保護する
- 10. クロムエクステンションのキーでAPIを保護する
- 11. アプリを保護する方法
- 12. Androidアプリのアクティビティを保護する
- 13. Laravel API - 保護経路アクセス
- 14. Angular 1.xのフィルタをAngular 2で使用するには?
- 15. 公開REST APIを保護
- 16. Python Flask APIを保護する方法
- 17. REST APIとSlim Frameworkを保護する
- 18. Javascript APIキーを保護する
- 19. HDCP/DPCP保護をチェック/要求するためのMac OS XパブリックAPI?
- 20. 2つのバックエンドサーバー間でセキュリティ保護されたapi通信
- 21. パスワードで保護されたAndroidアプリ
- 22. OtaaとJWTでlaravel apiサービスを保護
- 23. Angular 2アプリでAngular 1ビューを使用できますか?
- 24. Clickable image with Angular 2.x
- 25. Rest APIのCSRF保護
- 26. 複数のAPIの保護
- 27. Ionic 3アプリとカスタムPHP REST API間の通信を保護する方法
- 28. Mac OS Xアプリケーションでビデオアセットを保護する方法
- 29. PlayFramework 2.1.x(Scala)でCSRF保護を実装する方法は?
- 30. twitterでサインインするアプリケーションのAPIをセキュリティで保護する
あなたのトークンライフタイムは何ですか? – Kuncevic
@Kuncevic私はそれに問題がない、私はちょうど一般的なセキュリティの欠陥として気づいた – tobie