Symfony REST
プロジェクトでCSRF
の実装に問題があります。私はAngularJS
を使用しており、AuthToken
のクッキーはNG $cookie
サービスを使用して保存され、X-Auth-Token header
のすべてのリクエストでサーバーに送信されますが、実際にはCSRF
の保護を実装する必要がありますか? その他の質問、答えが「はい」だった場合、どうすればSymfony
でそれを行うことができますか? RESTful
ではないサーバーセッションでトークンを格納するため、のようなシステムを実装するにはどのような方法が良いですか?私の悪い英語のために、感謝!Rest APIのCSRF保護
0
A
答えて
1
基本的には、(自分のアプリケーションからの)攻撃者があなたのユーザーが誤ってサーバーの状態を変更するアプリケーションに有効な要求を発行することができたときにCSRFの保護を必要とする。
要するにクッキーベースの認証では、GET以外のリクエスト(GETが変更しない限り、そうではないはずはない)を意味します。これは、req他のウェブサイトから作成されました。
ヘッダーにアクセストークン(認証用)がある場合は、Angularアプリでリクエストに追加する必要があります。攻撃者はこれを実行できないため、CSRF保護は必要ありません。
トークンがクッキーとして送信されるトークンベースの認証の場合は、CSRF保護が必要です。これは、基本的には、この点で明白なクッキー認証と同じです。
0
あなたのケースで最も簡単なのは、このバンドルhttps://github.com/dunglas/DunglasAngularCsrfBundleを使用してユースケースを処理することです。
基本的にはどのように動作します:角度アプリはクッキーを読み取り、設定
- サーバアプリはXSRF-TOKENを偽造し、セッションに格納し、角アプリ
- にクッキーとして送信セッションに格納された将来の
- 要求サーバーは、トークンの値が(リクエスト・リスナーを使用して)各リクエストにX-XSRF- TOKENを比較するためのX-XSRF-TOKENは、
トークンD場合一致しない場合、リクエストは失敗します。
関連する問題
- 1. API CSRF保護
- 2. csrfの保護
- 3. IdentityServer4のCSRF保護
- 4. 公開REST APIを保護
- 5. Grails:OAuth2.0でREST APIを保護
- 6. Spring CSRF保護シナリオ?
- 7. CSRF保護質問
- 8. php csrf保護ライブラリ
- 9. SpringセキュリティRESTバックエンドのCSRFの保護 - クライアントへのシンクロナイザートークンパターンの転送
- 10. CSRFフェニックスとアングルの保護
- 11. WSO2でのRest APIの保護ESB
- 12. Angular2とLaravel CSRF保護
- 13. Spring OAuth2クライアント、CSRF保護
- 14. REST APIとSlim Frameworkを保護する
- 15. AJAX GETメソッドによるCSRFトークン保護
- 16. CSRF保護またはセッション固定保護
- 17. 免責事項directfinderでのCSRF保護
- 18. symfonyによるCSRFの保護
- 19. TYPO3でのクロスサイトリクエスト偽造(CSRF)保護
- 20. CSRF HTTPによるGETリクエストの保護
- 21. フォーム検証なしのCodeigniter csrf保護
- 22. CSRF保護とSpringセッションヘッダーセッションの戦略
- 23. REST APIによる認証とAPI自体の保護
- 24. CSRF/SQLインジェクション保護。ほかに何か?
- 25. CSRF Spring Securityを使用した保護
- 26. Symfony 3 API RESTとJWTのAngular webappにCSRFトークン保護を使用すると便利ですか?
- 27. RESTとJSONの保護
- 28. OAUTH2の場合CSRF保護が必要です
- 29. 偽の攻撃からのREST APIの保護
- 30. Kafka ConnectのREST APIへのアクセスの保護
CSRFトークンを使用すると、セッションが開いている間にスケッチのないスクリプトやページがサイトに要求を送信できないようにするため、CSRFトークンを使用して自分が誰であるかを証明します。あなたのアプリケーションにトークンを格納しておき、それをすべてのリクエストで送信する場合は、あなたがあなたの認証トークンを使っていることを証明しているときにCSRFを使う必要はありません。 – qooplmao