REST API を提供する Spring Boot Web アプリケーションを開発しています。ほとんどのページ (thymeleaf テンプレート) は、この API を使用してバックエンドと通信します (AJAX 要求を使用)。基本認証、OAuth2 などのさまざまなアプローチについて読みました。これらのアプローチは、ユーザー認証を説明した後、ユーザーが API にアクセスできるようになります。しかし、ユーザーがブラウザーまたは REST クライアントを使用して API と直接通信することは望ましくありません(つまり、アクセス トークンが通常保存されるブラウザーの Cookie にアクセスできる postman chrome 拡張機能)。
私はこのようなものを持っています:
(1) ユーザー --> (2) MyOwnPages --> (3) RestAPI。
直接通信を防ぐ方法はありますか 1-3 ?
リクエストが自分のページから行われたことをどうにかして判断できますか (つまり、各リクエストに何らかのアクセス トークンを追加します)? ベストプラクティスはありますか?
ありがとう!
1551 次
1 に答える
2
いいえ、それはまったく不可能です。トークンを追加して処理を難しくしたり、Javascript で何かを生成したりできますが、それではページが遅くなり、クラッシュする可能性が高くなります。
フローは次のとおりではありません。
(1) User --> (2) MyOwnPages --> (3) RestAPI.
むしろ:
(1) User --> (2) Users Browser --> (3) RestAPI.
また、API を呼び出すのはブラウザーであるため、cURL や Postman などの違いを見分ける賢明な方法はありません。あなたができることは何でも、ユーザーはWiresharkを配置して、正確に何を確認することができます。送信されており、そこからブラウザが行っていることを何でも行うことができます。
最終目標が何であれ、より良い解決策がある可能性が高いため、これを行う理由を正確に理解することはより役に立ちます。
于 2016-07-27T16:34:02.040 に答える