ホームページ バックエンド開発 PHPチュートリアル PHP フォームを使用して CSRF 攻撃を防ぐ方法

PHP フォームを使用して CSRF 攻撃を防ぐ方法

Jun 24, 2023 am 11:53 AM
csrf攻撃 PHPフォーム 予防のヒント

ネットワーク技術の継続的な発展に伴い、ネットワーク アプリケーション開発においてセキュリティの問題はますます無視できない問題になってきています。中でもクロスサイト リクエスト フォージェリ (CSRF) 攻撃は一般的な攻撃手法であり、その主な目的は、ユーザーがブラウザ内で悪意のあるリクエストを開始できるようにすることで、ユーザーを利用してバックグラウンドで不正なリクエストを開始させることです。 Web サイトにログインしているため、サーバー側のセキュリティの脆弱性が生じます。 PHP アプリケーションでは、フォーム検証の使用は CSRF 攻撃を防ぐ効果的な手段です。

  1. CSRF トークンの検証に参加

CSRF 攻撃は主にログイン ユーザーの ID を使用してリモート攻撃を実行するため、この攻撃方法に対する最も直接的な保護は追加です。ページ データとフォームにいくつかの型破りな値を追加し、各フォーム リクエストの送信を 1 回のみに制限します。これらの値は CSRF トークンであり、フォーム送信時の ID 情報が合法かどうかを検証するために使用されます。バックグラウンドでフォーム送信を処理する場合、トークンを検証する必要があり、事前に設定されたトークンと一致する場合にのみ、リクエストの処理を続行できます。

サンプル コードは次のとおりです。

// 生成Token值,通常可以在session中设置

session_start();

$token = md5(uniqid(mt_rand(), true));

$_SESSION['csrf_token'] = $token;

// 应用到表单中

<input type="hidden" name="csrf_token" value="<?=$_SESSION['csrf_token']?>"/>
ログイン後にコピー

フォーム送信の場合、次のようにデータを処理する前にトークンの検証が必要です。

// 获取表单提交的Token

$submittedToken = $_POST['csrf_token'];

// 验证Token是否合法

if (!isset($_SESSION['csrf_token']) || $submittedToken !== $_SESSION['csrf_token']) {

    die('Token validation failed, request denied');

}
ログイン後にコピー

上記のコードでは、次のように使用します。 PHP のセッション メカニズムは、重複しないランダムなトークン値を生成し、セッションに保存します。フォームでは、トークン値を非表示フィールドのフィールドとしてバックグラウンドに渡し、フォームの送信時にトークン値をサーバーに送信できるようにする必要があります。サーバー側では、リクエストされたトークンの値を確認する必要があり、送信されたトークンが事前定義されたトークンと一致しない場合、リクエストは拒否される必要があります。

  1. リファラー ポリシー ヘッダーの構成

リファラー ポリシーは、サードパーティ サイトにリクエストを送信するときにブラウザーにリファラー フィールドを含めるかどうかを制御するために使用される HTTP ヘッダーです。フォーム処理中に不正なリファラーフィールドに対するリクエストを直接拒否すると、CSRF 攻撃を効果的に防御できます。

PHP では、次のコードを使用して Referrer Policy ヘッダーを設定できます。

header('Referrer-Policy: no-referrer');
ログイン後にコピー

上記のコードは、リクエストの送信時に Referrer ヘッダー情報を含めないようブラウザーに指示します。このようにして、攻撃者が Referrer ヘッダーを偽造して CSRF 攻撃を実行しようとしても、ブラウザーによって拒否され、リクエストはサーバーに送信されません。

  1. 「検証コード」または「パスワード」認証をフォームに追加します

CSRF トークンをフォームに追加することに加えて、追加の検証コードまたはパスワードを追加することもできます。 、など。フォームのセキュリティを強化し、CSRF 攻撃を防ぐための認証方法。この方法は比較的面倒ですが、攻撃者がどのようにサーバーを欺こうとしても、追加の認証リンクを経由する必要があり、攻撃がより困難になるため、非常に効果的です。

  1. フォームの送信には GET メソッドの使用を避ける

CSRF 攻撃は主に GET リクエストを通じて開始されるため、フォームでのデータの送信に GET メソッドの使用を避けるよう努めています。形状。 GET メソッドを使用する必要がある場合は、フォームのセキュリティを強化するためにトークン値またはその他の認証方法をフォームに追加する必要があります。

つまり、CSRF 攻撃の防止は、PHP アプリケーション開発において注意を払わなければならない課題です。トークン値、リファラー ポリシー ヘッダー、検証コードなどのさまざまなセキュリティ メカニズムを合理的に使用することで、CSRF 攻撃の脅威からアプリケーションを効果的に保護できます。同時に、最新のネットワークセキュリティ問題や攻撃手法にも引き続き注意を払い、セキュリティ対策を迅速に更新・改善していく必要があります。

以上がPHP フォームを使用して CSRF 攻撃を防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHP フォームで 2 要素認証を使用してセキュリティを向上させる方法 PHP フォームで 2 要素認証を使用してセキュリティを向上させる方法 Jun 24, 2023 am 09:41 AM

デジタル化、ネットワーク化が進む今日、インターネットの世界においてセキュリティは無視できない重要な要素の一つとなっています。特にデータの機密性が高いビジネス シナリオでは、Web サイト、アプリケーション、ユーザー データのセキュリティを向上させる方法が特に重要です。 PHP フォームで 2 段階認証を使用してセキュリティを強化することは、実現可能な解決策です。二要素認証 (2FA) は二重認証および多要素認証とも呼ばれ、ユーザーが通常のアカウントのパスワードを入力するプロセスを指します。

Java フレームワークのセキュリティ アーキテクチャ設計はどのようにして CSRF 攻撃を防ぐのでしょうか? Java フレームワークのセキュリティ アーキテクチャ設計はどのようにして CSRF 攻撃を防ぐのでしょうか? Jun 06, 2024 pm 12:21 PM

Java フレームワークは、次の方法で CSRF 攻撃を防止します。 CSRFToken の検証: サーバーは、リクエスト内の CSRFToken がセッション内のトークンと一致するかどうかを検証します。 SynchronizerTokenPattern (STP): サーバーは、特定のフォームまたはリンクに関連付けられたトークンを使用して、そのトークンが、フォーム/リンクが送信またはクリックされたときに送信されたトークンと一致することを検証します。 DoubleSubmitCookies: 2 つの Cookie を使用して、リクエストが有効なユーザーからのものであることを確認します。

PHP フォーム保護のヒント: フォームの繰り返し送信を防ぐ方法 PHP フォーム保護のヒント: フォームの繰り返し送信を防ぐ方法 Jun 24, 2023 am 11:50 AM

データ送信に PHP フォームを使用する場合、フォームの送信が繰り返し行われるという問題がよく発生します。これにより、データが不正確になったり、さらに悪いことにシステムのクラッシュが発生したりする可能性があります。したがって、重複した提出を防ぐ方法を理解することが非常に重要です。この記事では、繰り返されるフォーム送信の問題を効果的に防止するために役立つ、PHP フォーム保護テクニックをいくつか紹介します。 1. フォームにトークンを追加する フォームにトークンを追加することは、繰り返しの送信を防ぐ一般的な方法です。このメソッドの原理は、フォームに隠しフィールドを追加することです。

Ajax アプリケーションを CSRF 攻撃から保護するためのセキュリティ対策 Ajax アプリケーションを CSRF 攻撃から保護するためのセキュリティ対策 Jan 30, 2024 am 08:38 AM

Ajax セキュリティ分析: CSRF 攻撃を防ぐには?はじめに: Web アプリケーションの開発とフロントエンド テクノロジの広範な適用により、Ajax は開発者の日常業務に不可欠な部分になりました。ただし、Ajax はアプリケーションにセキュリティ リスクももたらします。最も一般的なのは CSRF 攻撃 (Cross-SiteRequestForgery) です。この記事では、CSRF 攻撃の原理から始まり、Ajax アプリケーションに対するセキュリティ上の脅威を分析し、いくつかの防御策を提供します。

PHP フォームでモバイルおよびレスポンシブ デザインを処理する方法 PHP フォームでモバイルおよびレスポンシブ デザインを処理する方法 Aug 10, 2023 am 11:51 AM

PHP フォームでモバイルおよびレスポンシブ デザインに対処する方法: モバイル デバイスの人気と頻度が増加し、モバイル デバイスを使用して Web サイトにアクセスするユーザーが増えているため、モバイルへの適応が重要な問題になっています。 PHP フォームを扱うときは、モバイル フレンドリーなインターフェイスとレスポンシブ デザインを実現する方法を考慮する必要があります。この記事では、PHP フォームでモバイルおよびレスポンシブ デザインを処理する方法を説明し、コード例を示します。 1. HTML5 を使用したレスポンシブ フォーム HTML5 は、レスポンシブ フォームを簡単に実装できるいくつかの新機能を提供します。

PHP セキュリティ保護: CSRF 攻撃の制御 PHP セキュリティ保護: CSRF 攻撃の制御 Jun 24, 2023 am 08:22 AM

インターネットの発展に伴い、サイバー攻撃の頻度は増加しています。中でも、CSRF (Cross-SiteRequestForgery) 攻撃は、Web サイトやアプリケーションに対する主要な脅威の 1 つとなっています。 CSRF 攻撃とは、攻撃者がユーザーのログイン ID を使用してリクエストを偽造し、違法な操作を実行することを指します。 PHP は一般的に使用されるサーバーサイド プログラミング言語であるため、開発者は CSRF 攻撃を避けるために PHP のセキュリティ保護に注意を払う必要があります。 CSRF 攻撃を制御する方法は次のとおりです。 1. CSRF を使用する

PHP フォームを使用して CSRF 攻撃を防ぐ方法 PHP フォームを使用して CSRF 攻撃を防ぐ方法 Jun 24, 2023 am 11:53 AM

ネットワーク技術の継続的な発展に伴い、ネットワーク アプリケーション開発においてセキュリティの問題はますます無視できない問題になっています。中でもクロスサイト リクエスト フォージェリ (CSRF) 攻撃は一般的な攻撃手法であり、その主な目的は、ユーザーがブラウザ内で悪意のあるリクエストを開始できるようにすることで、ユーザーを利用してバックグラウンドで不正なリクエストを開始させることです。 Web サイトにログインしているため、サーバー側のセキュリティの脆弱性が生じます。 PHP アプリケーションでは、フォーム検証の使用は CSRF 攻撃を防ぐ効果的な手段です。 CSRFToken を追加して CSRF 攻撃を検証する

Linux サーバーのネットワーク セキュリティ: Web インターフェイスを CSRF 攻撃から保護します。 Linux サーバーのネットワーク セキュリティ: Web インターフェイスを CSRF 攻撃から保護します。 Sep 11, 2023 pm 12:22 PM

Linux サーバーのネットワーク セキュリティ: CSRF 攻撃から Web インターフェイスを保護する 近年、インターネットの普及と発展に伴い、人々はネットワーク セキュリティにますます注目するようになりました。 Linux は、オープン ソースの原則に基づいたオペレーティング システムとして、ネットワーク セキュリティの分野で広範なアプリケーションと認知度を持っています。 Linux サーバーを使用する場合、CSRF (Cross-SiteRequestForgery) 攻撃から Web インターフェイスを保護することは重要なタスクです。 CSRF攻撃はエクスプロイトです

See all articles