2016-05-15 10 views
0

グッドモーニング、セキュリティは、私はイオンでアプリを開発してい

を要求し、(Yiiの1)データベースにデータを保存するために、サーバーコントローラにデータを送信するいくつかの$ http要求(角度)があります。私は私のアプリを終了しましたが、セキュリティはありません。私はどのようにパラメータを送信する必要があり、私のアプリを殺す必要があることを知ることができます誰かが今私の$ httpの要求を見て誰もが、それを保護する方法を考えていた。

私はそれを保護するために何をすべきですか?多分、トークンを通して?私は本当にセキュリティメソッドで失われています。

ありがとう、

Carles

+0

に従ってくださいました CSRF攻撃を防ぐ方法の作業例https://devdactic.com/user-を見つけるだろうauth-angularjs-ionic/ –

答えて

0

よく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

+0

ありがとうございます! –

+0

あなたは歓迎です – Wcan

関連する問題