このチュートリアルでは、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 サイトの他の関連記事を参照してください。

BestappRoachforseminginphpisusingthephpmailerlibrarydueToitsReliability、featurrichness、andeaseofuse.phpmailerSupportssmtpは、detairederorhandlingを提供します

依存関係注射(DI)を使用する理由は、コードのゆるい結合、テスト可能性、および保守性を促進するためです。 1)コンストラクターを使用して依存関係を注入します。2)サービスロケーターの使用を避け、3)依存関係噴射コンテナを使用して依存関係を管理する、4)依存関係を注入することでテスト可能性を向上させる、5)注入依存性を回避、6)パフォーマンスに対するDIの影響を考慮します。

phpperformancetuningisucial cuseenhancess andandandadsand。

bestpracticesforsendingemails securlyinphpinclude:1)sutureconsmttarttlsencryptionとの使用の使用、2)検証およびサンシジン化のinputStopReventinjectuctacks、3)adinitivedinitivedInemailsopenslsl、4)adlinglinglingemailoaに

tooptimizephpapplicationsforporformance、usecaching、databaseoptimization、opcodecaching、andserverconfiguration.1)cachingwithedatedatedatafethtimes.2)最適化バイズビーインデキシング、readedandandandwriteoperations.3)

依存関係の依存性、テスト可能性、および維持可能性の依存性の依存性の依存性、および維持可能性は、エクステルンド依存性を維持する可能性があります

PHPパフォーマンスの最適化は、次の手順を通じて実現できます。1)スクリプトの上部にrequire_onceまたはinclude_onceを使用して、ファイルの負荷数を減らすことができます。 2)プリプロセシングステートメントとバッチ処理を使用して、データベースクエリの数を減らします。 3)OpCodeキャッシュのOpCacheを構成します。 4)PHP-FPM最適化プロセス管理を有効にして構成します。 5)CDNを使用して静的リソースを配布します。 6)コードパフォーマンス分析には、XdebugまたはBlackfireを使用します。 7)配列などの効率的なデータ構造を選択します。 8)最適化実行のためのモジュラーコードを記述します。

opcodeCachingsificlyprovesppherformanceBycachingCompiledCode、reducingServerloadandResponsetimes.1)itStoresPhpCodeInMemory、バイパス補助補強団体


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

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

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