このチュートリアルでは、Lithe に CSRF (クロスサイト リクエスト フォージェリ) 保護を実装して、アプリケーションに対して望ましくないリクエストが行われないようにする方法を学びます。このガイドは初心者向けに作成されているため、ステップごとに説明していきます!
CSRFとは何ですか?
CSRF (クロスサイト リクエスト フォージェリ) は、ユーザーが認証されている Web サイト上で不正なアクションを実行するように騙される攻撃の一種です。攻撃者はデータを操作したり、制限された領域にアクセスしたりできるため、この攻撃は危険です。これを防ぐために、疑わしいリクエストの処理を停止するセキュリティ層を追加します。
チュートリアルの構造
- しなやかなセットアップ
- CSRF ミドルウェアをインストールします
- バックエンドに CSRF トークンを追加します
- バックエンドでトークンを検証します
- フロントエンドからトークンを送信します
- CSRF 保護のテスト
始めましょう!
ステップ 1: Lithe をセットアップする
まだ Lithe をセットアップしていない場合は、以下のコマンドを使用してフレームワークをインストールすることから始めます:
composer create-project lithephp/lithephp project-name cd project-name
これにより、Lithe を使用したプロジェクトの基本構造が作成されます。
ステップ 2: CSRF ミドルウェアのインストール
CSRF ミドルウェアは、CSRF トークンの生成と検証に役立ちます。インストールするには、プロジェクト内のターミナルで次のコマンドを実行します:
composer require lithemod/csrf
ステップ 3: CSRF ミドルウェアの構成
次に、CSRF ミドルウェアを使用したいことを Lithe に伝える必要があります。メイン ファイル src/App.php を開き、CSRF ミドルウェアを追加します。
use Lithe\Middleware\Security\csrf; use function Lithe\Orbis\Http\Router\router; $app = new \Lithe\App; // Configure the CSRF middleware with automatic checking in the request body $app->use(csrf([ 'expire' => 600, // Token expiration after 10 minutes 'checkBody' => true, // Enables automatic checking in the body 'bodyMethods' => ['POST', 'PUT', 'DELETE'], // Defines the methods for checking CSRF in the body ])); $app->use(router(__DIR__ . '/routes/web')); $app->listen();
これにより、CSRF ミドルウェアがアプリケーションでアクティブになり、保護が必要なすべてのリクエストに有効なトークンが含まれている必要があります。
ステップ 4: CSRF トークンの生成
CSRF 保護を使用するには、一意のトークンを生成し、リクエストに含める必要があります。 CSRF トークンを自動的に含むフォームを送信するルートを作成します。
- src/routes/web.php という名前のファイルを作成し、CSRF トークンのフィールドを含むフォーム ルートを追加します。
use Lithe\Http\{Request, Response}; use function Lithe\Orbis\Http\Router\get; get('/form', function (Request $req, Response $res) { // Generate the CSRF token field $tokenField = $req->csrf->getTokenField(); // Send the HTML with the token included in the form return $res->send(""); });
- このルートは、CSRF トークン フィールドを含むフォームを作成します。このフィールドは、Lithe がリクエストの信頼性を確認するために必須です。
ステップ 5: バックエンドでのトークンの検証
フォームが送信されると、Lithe はトークンが有効かどうかを自動的にチェックします。次に、フォームを受信して処理するルートを作成しましょう。
- 同じファイル src/routes/web.php に、フォーム送信を処理するルートを追加します。
composer create-project lithephp/lithephp project-name cd project-name
トークンが無効または欠落している場合、Lithe は自動的にリクエストをブロックし、エラーを返します。
ステップ 6: CSRF トークンを使用してリクエストを送信する
フロントエンドでは、POST リクエスト (または別のデータ変更メソッド) を送信する必要がある場合は常に、ミドルウェアの構成方法に応じて、リクエストの本文またはヘッダーに CSRF トークンを含めることが重要です。
JavaScript フェッチ API の例
JavaScript を使用している場合は、フェッチ リクエストでトークンを送信する方法の例を次に示します。
composer require lithemod/csrf
ステップ 7: CSRF 保護のテスト
- ブラウザで /form ルートにアクセスします。 CSRF トークンが含まれたフォームが表示されます。
- フィールドに記入してフォームを送信します。
- すべてが機能している場合は、送信されたデータとともに成功メッセージが表示されます。
要約と最終的な考慮事項
このチュートリアルでは次のことを学びました:
- CSRF とは何か、なぜそれが重要なのか。
- Lithe で CSRF ミドルウェアをセットアップする方法。
- バックエンドで CSRF トークンを生成および検証する方法。
- フォームおよび AJAX リクエストで CSRF トークンを送信する方法。
この保護を実装すると、CSRF 攻撃に対するアプリケーションの安全性が高まり、ユーザーのデータの整合性の保護に役立ちます。
さらに詳しい情報については、Lithe の公式ドキュメントをご覧ください。
以上がLithe の CSRF を使用してアプリケーションを保護するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック



