よくWebアプリケーションセキュリティを調べると、クロスサイトリクエスト偽造(CSRF)が発生します。この攻撃ベクトルは、クッキーを利用していますが、予防可能な方法で行われます。
ほとんどの攻撃は、ほぼすべてのウェブサイトが認証の一形態としてCookieを使用しているため、Cookieを盗み出すことに重点を置いています。設定はこれです:ユーザがあなたのサーバにログインすると、ブラウザにクッキーを設定します。このCookieには、データベース内のユーザーのセッション情報へのリンクである固有のIDが含まれています。ブラウザは、将来のリクエストでこのクッキーを提供し、サーバーはあなたが誰であるかを知っています。
これは悪くないとは言えませんが、ここにキャッチがあります。エンドユーザーがアクションを自分で実行しなかったとしても、Webブラウザはサーバーにリクエストを送信するようになります。 POSTを使用して
は、時々、適切なフォームベースのPOSTリクエストを使用すると、この攻撃を軽減することが考えられるが、それは真実ではない
を要求します。
使用してHTTP-Onlyまたはセキュアクッキー
あなたは間違いなくあなたのセッションクッキーの上にこれらのフラグを使用する必要がありますが、彼らは暗黙のうちに攻撃を停止しないでください:ブラウザがまだあなたのドメインたときにリクエストにクッキーを送信あなたのドメインに作られています。あなたのサーバは、これが本当のユーザか攻撃かわかりません。
はCSRF
を防ぐためにどのように敬意をブラウザ一連のルールに頼ることによって、これを達成することができ、Same-Origin Policyと呼ばれます。このポリシーは、特定の機密操作が、他のウェブサイトではなく当社のウェブサイトで実行されているJavaScriptコードによって実行されることを主張しています。
角度パッケージはCSRFトークンに近づくため、実装が簡単になります。あなたのAngularアプリケーションがあなたのサーバに対して行うリクエストごとに、Angular $ httpサービスは自動的に以下の処理を行います:
現在のドメイン上でXSRF-TOKENという名前のクッキーを探します。 そのCookieが見つかった場合は、その値を読み取り、要求にX-XSRF-TOKENヘッダーとして追加します。
このように、クライアント側の実装が自動的に処理されます。しかし、これはあなたの手にサーバー側の部分を残します。
ログイン時に:(ランダムで推測できない文字列で)CSRFトークンを作成し、それをユーザーセッションに関連付けます。ログイン応答でXSRF-TOKENクッキーとして送信する必要があります。 APIへのすべての着信要求にX-XSRF-TOKENヘッダーがあり、ヘッダーの値がユーザーのセッションに関連付けられているトークンであることを確認します。
これだけです!ちょっとしたバックエンドの作業で、CSRF攻撃からあなたを守る戦略ができました。
あなたはhereは理解のCSRF攻撃の理論のために「イオンの枠組みの認証」を検索このreference
に従ってくださいました CSRF攻撃を防ぐ方法の作業例https://devdactic.com/user-を見つけるだろうauth-angularjs-ionic/ –