Ground Sunlight

Windowsで作る - PHPプログラミングの開発環境

ユーザ用ツール

サイト用ツール


apricot:ext:csrf

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
apricot:ext:csrf [2020/05/24 15:42]
y2sunlight [テスト実行]
apricot:ext:csrf [2020/06/08 11:16] (現在)
tanaka [ミドルウェア]
行 1: 行 1:
->編集中 
- 
------ 
- 
 ====== Apricot CSRF対策 ====== ====== Apricot CSRF対策 ======
  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-15//  --- //[[http://www.y2sunlight.com|y2sunlight]] 2020-05-15//
行 37: 行 33:
 |static\\ generate()|セッション内のCSRFトークンが未生成の場合、生成してセッションに格納します。| |static\\ generate()|セッション内のCSRFトークンが未生成の場合、生成してセッションに格納します。|
  
-これらのメソッドは[[#ミドルウェア|ミドルウェア]]で使用することを想定しています。HTMLに埋め込むCSRFトークンはセッションから取得して下さい(後述の[[#BladeOneのカスタマイズ|BladeOneのカスタマイズ|]]を参照)。+これらのメソッドは[[#ミドルウェア|ミドルウェア]]で使用することを想定しています。HTMLに埋め込むCSRFトークンはセッションから取得して下さい(後述の[[#BladeOneのカスタマイズ|BladeOneのカスタマイズ]]を参照)。
  
 CsrfTokenクラスを以下に示します。 CsrfTokenクラスを以下に示します。
  
-{{fa>folder-open-o}} ** /apricot/core/Security/ **+{{fa>folder-open-o}} ** /apricot/core/Foundation/Security **
 <code php CsrfToken.php> <code php CsrfToken.php>
 <?php <?php
行 117: 行 113:
  
 {{fa>folder-open-o}} ** /apricot/app/Middleware ** {{fa>folder-open-o}} ** /apricot/app/Middleware **
-<code php CsrfToken.php>+<code php VerifyCsrfToken.php>
 <?php <?php
 namespace App\Middleware; namespace App\Middleware;
行 240: 行 236:
 ===== HTMLテンプレートの修正 ===== ===== HTMLテンプレートの修正 =====
  
-これまで作成したフォーム画面のHTMLテンプレートを修正し、@csrfディレクティブを追加します。+これまで作成したフォーム画面のHTMLテンプレートを修正し、@csrfディレクティブを追加します。
  
 ==== ユーザ登録画面 ==== ==== ユーザ登録画面 ====
行 288: 行 284:
 [{{apricot:ext:ext02.png?nolink}}] [{{apricot:ext:ext02.png?nolink}}]
 ■ 正常に保存できます。\\  ■ 正常に保存できます。\\ 
-■ 先に修正しユーザ編集画面の@csrfディレクティブをコメントにして再び[保存]ボタンを押して下さい。 +■ 先に修正しユーザ編集画面の ''@csrf'' ディレクティブをコメントにして下さい。 
  
 <div indent 60%> <div indent 60%>
行 301: 行 297:
 </code> </code>
 </div> </div>
 +
 +■ ユーザ編集画面で再び[保存]ボタンを押すと次の画面が出ます。
  
 [{{apricot:ext:ext03.png?nolink}}] [{{apricot:ext:ext03.png?nolink}}]
 ■ ''VerifyCsrfToken Error'' のメッセージと共にWhoopsのエラー画面が出力されます。\\  ■ ''VerifyCsrfToken Error'' のメッセージと共にWhoopsのエラー画面が出力されます。\\ 
 +■ これは CSRFトークンがサーバーに送信されていないので発生する例外です。\\
 +■ 尚、本番用のエラー画面を出力したい場合は、.env の ''APP_DEBUG'' をfalseに設定してからテストして下さい。
 +
 +<div indent 60%>
 +<code ini .env>
 +....
 +APP_DEBUG=false
 +....
 +</code>
 +</div>
  
-テスト後は、@csrf を元に戻しておいて下さい。+テスト後は、''@csrf'' や ''APP_DEBUG'' を元に戻しておいて下さい。
  
 \\ \\
apricot/ext/csrf.1590302542.txt.gz · 最終更新: 2020/05/24 15:42 by y2sunlight