CSRFとは何ですか? CSRF の危険性とそれに対する防御方法
この記事の内容は、CSRF とは何ですか? CSRFの危険性と防御方法については、参考にしていただければ幸いです。
CSRF とは
CSRF を理解する前に、2 つの前提条件を普及する必要があります。まず、ログイン権限を確認する方法は現在、ほとんどの Web サイトで使用されています。 セッションセッションタスクモード。簡単に言えば、セッションのメカニズムは、サーバーがキーと値のペアを使用してログイン情報を記録し、同時にセッションが Cookie に保存されることです。 ID (先ほど述べたキー) は Cookie に保存されます。さらに、ブラウザでの HTTP(s) リクエストにより Cookie が自動的に保存されることもわかっています。 サーバーに渡されました。このようにして、各リクエスト中に Cookie を介してセッション ID が取得され、それを介してサーバーからログイン情報が取得され、ユーザー権限の検証が完了します。
もともとこれも良い機能でした。しかし、そのせいで ユーザーが Web サイト A にログインし、Web サイト B にアクセスしたときに A Cookie を送信すると、Cookie は実際にオープンになります。 Web サイト リクエスト。このリクエストには実際に Web サイト A 上のユーザーのログイン情報が含まれます。このときAがB駅にいたら Web サイトのリクエストがユーザーに知られていない場合、それは非常に深刻な損害となります。上記のプロセスはクロスサイト リクエスト攻撃、つまりクロスサイト リクエスト フォージェリです。 CSRF。
CSRF の危険性
CSRF の脆弱性を簡単にまとめると、Web サイトの権限検証の脆弱性を利用して、ユーザーが気づかないうちにリクエストを送信し、ユーザーを「偽装」するというものです。 。 目的。攻撃者が CSRF を使用して実行する主な攻撃の種類は次のとおりです。
攻撃者は、被害者ユーザーをだまして、アカウント詳細の更新、ショッピングの完了、ログアウトなど、被害者が許可したステータス変更操作を完了させることができます。 、さらにはログインやその他の操作も可能です。
ユーザーの個人データを取得します。
他の脆弱性攻撃と連携します。
CSRF ワーム
彼ら CSRF ワームは、その名前が示すとおり、ワーム効果を生み出し、 攻撃は 1 から 10、10 から 100 に広がります。たとえば、コミュニティ内の友人に個人的にメッセージを送信するためのインターフェイスと友人リストを取得するためのインターフェイスには両方とも CSRF 脆弱性があり、攻撃者はそれらを組み合わせて CSRF ワームを作成することができます。ユーザーが悪意のあるページにアクセスすると、ユーザーは次の方法で友人リスト情報を取得します。 CSRF を使用する プライベート メッセージングを行う友人の CSRF 脆弱性により、悪意のあるページを指すメッセージが各友人に送信され、誰かがこのメッセージ内のリンクを閲覧している限り、CSRF ワームは広がり続け、被害と影響が及ぶ可能性があります。原因は大きいです!
防御方法
上記の説明から、CSRF には Cookie を自動的に運ぶ機能とクロスサイト攻撃という 2 つの特徴があることがわかります。これら 2 つの機能に対して次のソリューションを使用できます。
Referer フィールドを確認する
HTTP ヘッダーに Referer フィールドがあることは誰もが知っています。このフィールドは、リクエストの送信元のアドレスを示すために使用されます。 Web サイト内のリクエストのこのフィールドを確認することで、リクエストがこのサイトから発行されたものであるかどうかを知ることができます。このサイトが発行したもの以外のリクエストはすべて拒否できるため、CSRF のクロスサイト特性を回避できます。
const { parse } = require('url');module.exports = class extends think.Logic { indexAction() { const referrer = this.ctx.referrer(); const {host: referrerHost} = parse(referrer); if(referrerHost !== 'xxx') { return this.fail('REFERRER_ERROR'); } }}
これもThinkJSを例にしてLogicで簡単に判断してみます。この方法は、クライアントがリファラーを構築できないことを利用したもので、簡単ではありますが、Web サイトに複数のドメイン名がある場合や、ドメイン名が頻繁に変更される場合には非常に面倒であり、制限もあります。
トークン検証
CSRF はブラウザの Cookie を自動的に渡す機能を利用するため、もう 1 つの防御策は、Cookie を通じて検証情報を渡さず、検証のためにランダムな暗号化された文字列を他のパラメータに追加することです。 。 テスト。ここには 2 つの方法があります:
ランダムな文字列: 各送信にランダムな文字列パラメーターを追加します。パラメーターは、サーバーによって要求されるたびに送信パラメーターに追加されます。 pass パラメータが一貫しているかどうかを検証して、それがユーザー要求であるかどうかを判断します。 CSRF 攻撃の攻撃者はランダム文字列の値を事前に知る方法がないため、サーバーは値を確認することでリクエストを拒否できます。
JWT: 実は例外です セッション ログインに加えて、JWT トークン ログイン検証もますます一般的になりつつあります。このメソッドは、フロントエンドでログイン トークンを記録し、リクエストが行われるたびにヘッダーでそれを渡します。 ログイン検証プロセスは、認証ヘッダーを追加することで実装されます。 CSRF 攻撃では攻撃者はトークンの値を知ることができないため、この方法でも CSRF 攻撃を防ぐことができます。確かに JWT に加えて、トークン ログイン方法には OAuth やその他の多くの方法が含まれます。
以上がCSRFとは何ですか? CSRF の危険性とそれに対する防御方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravel におけるクロスサイト スクリプティング (XSS) およびクロスサイト リクエスト フォージェリ (CSRF) からの保護 インターネットの発展に伴い、ネットワーク セキュリティの問題はますます深刻になってきています。その中でも、Cross-SiteScripting (XSS) と Cross-SiteRequestForgery (CSRF) は、最も一般的な攻撃手法の 1 つです。 Laravel は、人気のある PHP 開発フレームワークとして、ユーザーにさまざまなセキュリティ メカニズムを提供します。

PHPSession のクロスドメインおよびクロスサイト リクエスト フォージェリの比較分析 インターネットの発展に伴い、Web アプリケーションのセキュリティが特に重要になってきました。 PHPSession は、Web アプリケーションの開発時によく使用される認証およびセッション追跡メカニズムですが、クロスドメイン リクエストとクロスサイト リクエスト フォージェリ (CSRF) は 2 つの主要なセキュリティ脅威です。ユーザーデータとアプリケーションのセキュリティを保護するために、開発者はセッションクロスドメインとCSRFの違いを理解し、CSRFを採用する必要があります。

PHP Framework セキュリティ ガイド: CSRF 攻撃を防ぐには?クロスサイト リクエスト フォージェリ (CSRF) 攻撃は、攻撃者がユーザーをだまして被害者の Web アプリケーション内で意図しないアクションを実行させるネットワーク攻撃の一種です。 CSRFはどのように機能しますか? CSRF 攻撃は、ほとんどの Web アプリケーションが同じドメイン名の異なるページ間でリクエストを送信できるという事実を利用します。攻撃者は、被害者のアプリケーションにリクエストを送信する悪意のあるページを作成し、不正なアクションを引き起こします。 CSRF攻撃を防ぐにはどうすればよいでしょうか? 1. CSRF 対策トークンを使用する: 各ユーザーに一意のトークンを割り当て、セッションまたは Cookie に保存します。トークンを送信するための非表示フィールドをアプリケーションに含めます。

インターネットの発展に伴い、Web アプリケーションが増えていますが、セキュリティ問題への注目も高まっています。 CSRF (CrossSiteRequestForgery、クロスサイト リクエスト フォージェリ) 攻撃は、ネットワーク セキュリティの一般的な問題です。 CSRF攻撃とは何ですか?いわゆる CSRF 攻撃とは、攻撃者がユーザーの ID を盗み、ユーザーの名を借りて違法な操作を実行することを意味します。平たく言えば、攻撃者がユーザーのログイン状態を利用して、ユーザーの知らないうちに何らかの不正な操作を実行することを意味します。

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

CSRF の原則 CSRF 攻撃を防御したい場合は、まず CSRF 攻撃が何であるかを理解する必要があります。次の図を通して CSRF 攻撃プロセスを整理しましょう: 実際、このプロセスは非常に単純です: 1. ユーザーがChina Merchants Online Banking の Web サイトを開いてログインします。 2. ログインに成功すると、オンライン バンキングは Cookie をフロントエンドに返し、ブラウザは Cookie を保存します。 3. ユーザーがオンライン バンキングからログアウトせずにブラウザで新しいタブを開き、危険な Web サイトにアクセスしました。 4. この危険な Web サイトにはハイパーリンクがあり、そのハイパーリンクのアドレスは中国商人オンライン バンキングを指しています。 4. ユーザーがこのリンクをクリックすると、このハイパーリンクにはブラウザに保存された Cookie が自動的に送信されるため、

PHP と Vue.js は、クロスサイト リクエスト フォージェリ (CSRF) 攻撃から防御するアプリケーションを開発します。インターネット アプリケーションの開発に伴い、クロスサイト リクエスト フォージェリ (CSRF) 攻撃は一般的なセキュリティ脅威になりました。ユーザーのログイン ID を使用して、ユーザーのパスワードの変更、スパムの公開などの悪意のある操作を実行するための偽造リクエストを作成します。ユーザーのセキュリティとデータの整合性を保護するには、アプリケーションに効果的な CSRF を実装する必要があります。

PHP によるクロスサイト リクエスト フォージェリ (CSRF) 防御テクノロジの分析 インターネットの急速な発展に伴い、ネットワーク セキュリティの問題がますます顕著になってきています。クロスサイト リクエスト フォージェリ (CSRF) 攻撃は、一般的なネットワーク セキュリティの脅威であり、ユーザーのログイン ID 情報を使用して、偽装リクエストを通じて悪意のある操作を送信し、ユーザーが知らないうちに悪意のある操作を実行するようにします。 PHP開発においては、CSRF攻撃をいかに防御するかが重要な課題となっています。 CSRF 攻撃の原則 CSRF 攻撃に対する防御方法を理解する前に、まず CS について理解する必要があります。
