問題タブ [csrf-token]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
214 参照

angular - hapi を使用して開発された API と angular 5 を使用して開発されたフロント エンドを使用するアプリケーションで csrf 保護用のクラムを実装できない

クラム トークンで保護された hapi エンドポイントにアクセスすると、403 禁止エラーが発生します。APIでCSRFにnpmのcrumbパッケージを使用しました。私のAPIはhapiを使用して開発されており、フロントエンドはAngular 5です.

Hapi API エンドポイントの「set-cookie」応答ヘッダーでクラム トークンを取得します。クラム トークンはエンド ポイントごとに異なります。

angularアプリケーションを介してhapiエンドポイントに送信されるすべてのリクエストのクラムトークンを検証するにはどうすればよいですか?

以下のアプローチを試しました

  1. angular アプリにインターセプターを追加し、「HttpXsrfTokenExtractor」の getToken メソッドを使用してトークンを抽出し、「X-XSRF-Token」ヘッダーに設定しようとしました。例外をスローしています「getToken」は関数ではありません

  2. エンドポイント "getCrumb" を追加しました。このエンドポイントはクラム トークンを返します。「X-XSRF-Token」ヘッダーで、このクラム トークンをログイン エンドポイントに渡します。しかし、これにより、ログインAPIの403禁止エラーが発生します。