攻撃CSRFの原則とプロセス
まだログインしているユーザーを維持しながら、フォームや攻撃を含むコードの内容を送信するために、ユーザーに渡されたフィッシングサイトを参照して、生成された通常のログインユーザを使用してCSRFクッキーは、フロントエンドは、JSを使用することができます要求して人質を送りますユーザーのログインアクセスクッキー、通常のウェブサイトの正常なサイト、サイト上のユーザの手の広がりによる偽造フォームの目的。他のサイトへのフォームが作成、ユーザーが送信し、ユーザーにログオンcsrftoken発行したウェブサイトを避けるために、トークンは(ブラウザでローカルストレージに格納されている)クッキーに保存されていない、コール(WebサイトのフロントエンドJSで識別される{{csrftoken}}
)、提出トークンは、このウェブサイト(セッションに格納されたサーバー認証トークンデータ)を検証するために、フォームから必要な形状を有する場合。
どのようにCSRFの防御
-
コードを送信
形式でランダムな数字または文字コードを追加します。ユーザーやアプリケーションを強制することによって相互作用。効果的にCSRF攻撃を抑制します。 -
リファラーチェック
チェックページ要求、最も可能性の高いCSRF攻撃の上に非正規を前提としています。 - トークン検証
- HTTPリクエストのコンテンツトークンまたはしない要求は、その要求がCSRF攻撃を拒否されたこととすることができること、ランダムにトークン生成したトークンを認証するためにインターセプタサーバ側を確立する、いかなるトークンが想定されていないのパラメータの形態で添加されます。
- トークンの必要性ランダム十分
- 機密性の高い操作は、POSTを使用する必要があります。代わりにGETで、フォームのフォーム形式で提出しました。トークンリークを回避することができます。
-
HTTPヘッダーとそのカスタム属性を検証
このような方法は、認証トークンのために使用されています。ここでトークンは、HTTPリクエストパラメータの形に配置されていないが、HTTPヘッダ内に定義されたそれらの特性に入れました。このクラスでのXMLHttpRequestは、クラスは、すべてのHTTPヘッダに1回の要求であることに加えて、このプロパティをcsrftokenことができます。そして、彼らにトークン値。このような方法は、要求にトークンを追加不便を克服します。同じ時間は、リファラー、外出先を通じて他のサイトへのトークンのリークについてのない心配を行い、XMLHttpRequestのリクエストにより、ブラウザのアドレスのアドレスバーに記録されません。
トークンについて#
- トークンを保存する必要があります(にローカル/ stogrageセッション)
- クッキーとして有効同期間にトークン加え、あなたはまた、操作の他の方法の多くを持っている必要があります。トークンの有効期限が切れたら、だけに必要もう一度1を取得します。あなたはリフレッシュトークンへのインタフェースを使用することができます。あなたも、保存されたトークン初版発行時間を置くことができます。そして、何が2週間でログに再び余儀なくされました。あなたは(それが必要なときに、トークン寿命が長いとき)、あなたがチェックのためのトークンマネージャの行くを生成する必要がトークンを撤回する必要があるとします。
- ローカル/セッションストレージは、ドメイン間での仕事は、タグにクッキーを使用しません:同一生成元ポリシーブラウザベース
- 必要性は、暗号化と署名トークンに、そして、あります
- OAuthの2にJSONウェブトークンアプリケーション
ホワイトリストクロスドメインリクエストについて
ジャンゴ-CORSは、Djangoのフラスコまたは他の拡張機能を拡張しました
- 書き込みミドルウェア、インターセプト処理オプションのミドルウェア
- 要求はオプション、そうでない場合opitonsであるかどうかを決定する方法は、そうでなければ、実行のビューに、以下の手順に従って処理を未処理のまま
- ホワイトリストとは対照的に、要求のオプションからアクセスドメイン名を削除し、ドメイン名を可能にします、
- ホワイトリストは、クロスドメインアクセスを許可するように返された場合は、それ以外の場合は許可されていません
同一生成元ポリシーブラウザ
同一生成元ポリシー(同一生成元ポリシー)、それは同一生成元ポリシーの欠如、ブラウザの通常の機能が影響を受ける可能性がある場合は、ブラウザのコアは、また、最も基本的なセキュリティ機能です、慣例です。ウェブは、同一生成元ポリシーに基づいて構築されると言うことができますが、ブラウザが実現元ポリシーに向けられています。同一生成元ポリシーの特別なプロパティがアクセスするリソースは、同一生成元ポリシーに拘束され、相互に情報を簡単に取得するために異なるサイトを避けるために、ブラウザ自体、ブラウザで、単純に言いました。
いわゆる相同ドメイン、プロトコル、同一のポートを指します。場合は、ブラウザ内の2つのタブページがオープンBaiduのと、Googleのページです。このページは、所属チェックするスクリプトブラウザBaiduのタブページのスクリプトを実行する場合、すなわち、相同かどうかを確認するために、そして百度だけ相同スクリプトが実行されます。非相同、そのデータが要求されている場合、ブラウザは例外となり、コンソールプロンプト年半ばレポートへのアクセスを拒否されました。
:私たちは、ブラウザのようなHTTPリクエストモード取得要求資源、であることを知っているHttp://www.baidu.com:8080/xxxx。これではHTTPプロトコルが要求、www.baidu.comドメイン名、ポート番号は要求がHTTPプロトコルモードを使用していることを意味し、8080で、サーバーは、ドメイン名からサービスを展開www.baidu.com XXXX 8080のポート上のリソースを要求します。
するととき、プロトコル、ドメイン名は、ポートが、あること、異なるソースと同じではありません。
现在有一个网站:http://www.a.com/a。
https://www.a.com/a :不同源,协议不同,此处协议是https!
http://www.b.com/a :不同源,域名不同 http://www.a.com:8080/a :不同源,端口不同 http://www.a.com/b :同源 综上,跨域就是请求路径的url不同源。
マニュアルを参照してください:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
セッション、のlocalStorage、のsessionStorage、異なるクッキー記憶機構#
localStorage、のsessionStorageは、クッキーはブラウザに保存されたデータをキャッシュするために使用することができます。
sessionStorage、クッキーは永久的な存在、ブラウザを閉じるか、サーバーへのアクセスを停止して消え、ないとの両方を保存します。
ユーザーが手動で真にデータをクリアするためには、ブラウザのキャッシュをクリアしたときのみのlocalStorageは、この方法でクリアされません。
クライアントに保存しないセッションが、サーバ側に保存されています。クッキーは、ユーザーの身元を確認するために、セッションIDに保存されます。
過去には、これらのキャッシュは行わクッキーで保存されます。しかし、クッキーは、クッキーが遅く、非効率的である可能サーバに要求を渡すためにそれらのそれぞれにより、大量のデータを格納するのに適していません。
HTML5では、要求されたデータは、各サーバによって送信されたが、唯一の要求内のデータを使用していません。これは、可能なサイトのパフォーマンスに影響を与えることなく、大量のデータを保存することができます。別のウェブサイトでは、データは異なる領域に格納され、Webサイトが唯一の自分のデータにアクセスすることができます。
ブラウザは、タブ満たすに同一生成元ポリシーを開いたとき、彼らは、そのような伐採権として、ユーザー情報へのアクセスをデータ操作のために繰り返し要求を繰り返し、そうではありませんので、各ページ間の相互アクセスデータのためにその動作することができています。
攻撃CSRFの原則とプロセス
まだログインしているユーザーを維持しながら、フォームや攻撃を含むコードの内容を送信するために、ユーザーに渡されたフィッシングサイトを参照して、生成された通常のログインユーザを使用してCSRFクッキーは、フロントエンドは、JSを使用することができます要求して人質を送りますユーザーのログインアクセスクッキー、通常のウェブサイトの正常なサイト、サイト上のユーザの手の広がりによる偽造フォームの目的。他のサイトへのフォームが作成、ユーザーが送信し、ユーザーにログオンcsrftoken発行したウェブサイトを避けるために、トークンは(ブラウザでローカルストレージに格納されている)クッキーに保存されていない、コール(WebサイトのフロントエンドJSで識別される{{csrftoken}}
)、提出トークンは、このウェブサイト(セッションに格納されたサーバー認証トークンデータ)を検証するために、フォームから必要な形状を有する場合。
どのようにCSRFの防御
-
コードを送信
形式でランダムな数字または文字コードを追加します。ユーザーやアプリケーションを強制することによって相互作用。効果的にCSRF攻撃を抑制します。 -
リファラーチェック
チェックページ要求、最も可能性の高いCSRF攻撃の上に非正規を前提としています。 - トークン検証
- HTTPリクエストのコンテンツトークンまたはしない要求は、その要求がCSRF攻撃を拒否されたこととすることができること、ランダムにトークン生成したトークンを認証するためにインターセプタサーバ側を確立する、いかなるトークンが想定されていないのパラメータの形態で添加されます。
- トークンの必要性ランダム十分
- 機密性の高い操作は、POSTを使用する必要があります。代わりにGETで、フォームのフォーム形式で提出しました。トークンリークを回避することができます。
-
HTTPヘッダーとそのカスタム属性を検証
このような方法は、認証トークンのために使用されています。ここでトークンは、HTTPリクエストパラメータの形に配置されていないが、HTTPヘッダ内に定義されたそれらの特性に入れました。このクラスでのXMLHttpRequestは、クラスは、すべてのHTTPヘッダに1回の要求であることに加えて、このプロパティをcsrftokenことができます。そして、彼らにトークン値。このような方法は、要求にトークンを追加不便を克服します。同じ時間は、リファラー、外出先を通じて他のサイトへのトークンのリークについてのない心配を行い、XMLHttpRequestのリクエストにより、ブラウザのアドレスのアドレスバーに記録されません。
トークンについて#
- トークンを保存する必要があります(にローカル/ stogrageセッション)
- クッキーとして有効同期間にトークン加え、あなたはまた、操作の他の方法の多くを持っている必要があります。トークンの有効期限が切れたら、だけに必要もう一度1を取得します。あなたはリフレッシュトークンへのインタフェースを使用することができます。あなたも、保存されたトークン初版発行時間を置くことができます。そして、何が2週間でログに再び余儀なくされました。あなたは(それが必要なときに、トークン寿命が長いとき)、あなたがチェックのためのトークンマネージャの行くを生成する必要がトークンを撤回する必要があるとします。
- ローカル/セッションストレージは、ドメイン間での仕事は、タグにクッキーを使用しません:同一生成元ポリシーブラウザベース
- 必要性は、暗号化と署名トークンに、そして、あります
- OAuthの2にJSONウェブトークンアプリケーション
ホワイトリストクロスドメインリクエストについて
ジャンゴ-CORSは、Djangoのフラスコまたは他の拡張機能を拡張しました
- 書き込みミドルウェア、インターセプト処理オプションのミドルウェア
- 要求はオプション、そうでない場合opitonsであるかどうかを決定する方法は、そうでなければ、実行のビューに、以下の手順に従って処理を未処理のまま
- ホワイトリストとは対照的に、要求のオプションからアクセスドメイン名を削除し、ドメイン名を可能にします、
- ホワイトリストは、クロスドメインアクセスを許可するように返された場合は、それ以外の場合は許可されていません
同一生成元ポリシーブラウザ
同一生成元ポリシー(同一生成元ポリシー)、それは同一生成元ポリシーの欠如、ブラウザの通常の機能が影響を受ける可能性がある場合は、ブラウザのコアは、また、最も基本的なセキュリティ機能です、慣例です。ウェブは、同一生成元ポリシーに基づいて構築されると言うことができますが、ブラウザが実現元ポリシーに向けられています。同一生成元ポリシーの特別なプロパティがアクセスするリソースは、同一生成元ポリシーに拘束され、相互に情報を簡単に取得するために異なるサイトを避けるために、ブラウザ自体、ブラウザで、単純に言いました。
いわゆる相同ドメイン、プロトコル、同一のポートを指します。場合は、ブラウザ内の2つのタブページがオープンBaiduのと、Googleのページです。このページは、所属チェックするスクリプトブラウザBaiduのタブページのスクリプトを実行する場合、すなわち、相同かどうかを確認するために、そして百度だけ相同スクリプトが実行されます。非相同、そのデータが要求されている場合、ブラウザは例外となり、コンソールプロンプト年半ばレポートへのアクセスを拒否されました。
:私たちは、ブラウザのようなHTTPリクエストモード取得要求資源、であることを知っているHttp://www.baidu.com:8080/xxxx。これではHTTPプロトコルが要求、www.baidu.comドメイン名、ポート番号は要求がHTTPプロトコルモードを使用していることを意味し、8080で、サーバーは、ドメイン名からサービスを展開www.baidu.com XXXX 8080のポート上のリソースを要求します。
するととき、プロトコル、ドメイン名は、ポートが、あること、異なるソースと同じではありません。
现在有一个网站:http://www.a.com/a。
https://www.a.com/a :不同源,协议不同,此处协议是https!
http://www.b.com/a :不同源,域名不同 http://www.a.com:8080/a :不同源,端口不同 http://www.a.com/b :同源 综上,跨域就是请求路径的url不同源。
マニュアルを参照してください:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
セッション、のlocalStorage、のsessionStorage、異なるクッキー記憶機構#
localStorage、のsessionStorageは、クッキーはブラウザに保存されたデータをキャッシュするために使用することができます。
sessionStorage、クッキーは永久的な存在、ブラウザを閉じるか、サーバーへのアクセスを停止して消え、ないとの両方を保存します。
ユーザーが手動で真にデータをクリアするためには、ブラウザのキャッシュをクリアしたときのみのlocalStorageは、この方法でクリアされません。
クライアントに保存しないセッションが、サーバ側に保存されています。クッキーは、ユーザーの身元を確認するために、セッションIDに保存されます。
過去には、これらのキャッシュは行わクッキーで保存されます。しかし、クッキーは、クッキーが遅く、非効率的である可能サーバに要求を渡すためにそれらのそれぞれにより、大量のデータを格納するのに適していません。
HTML5では、要求されたデータは、各サーバによって送信されたが、唯一の要求内のデータを使用していません。これは、可能なサイトのパフォーマンスに影響を与えることなく、大量のデータを保存することができます。別のウェブサイトでは、データは異なる領域に格納され、Webサイトが唯一の自分のデータにアクセスすることができます。
ブラウザは、タブ満たすに同一生成元ポリシーを開いたとき、彼らは、そのような伐採権として、ユーザー情報へのアクセスをデータ操作のために繰り返し要求を繰り返し、そうではありませんので、各ページ間の相互アクセスデータのためにその動作することができています。