Laravel 9 以降での AJAX の CSRF トークン管理の改善: ベストプラクティス
P粉242741921
P粉242741921 2023-08-08 19:46:23
0
1
472
<p>Laravel 9 のコンテキストでは、必要なセキュリティ対策を確保するために、AJAX リクエストは CSRF トークンを公開する必要があります。ただし、トークンの配置方法が異なると、コードの優雅さと構成に影響を与える可能性があります。主な 2 つの方法は次のとおりです。
gt;
方法 1: Blade 構文を使用して CSRF トークンを直接挿入する
gt;
この方法では、CSRF トークン カードがBlade 構文を介して JavaScript に直接埋め込まれます。 (同じコードを複数の場所で繰り返します)</p><p><br /></p> <pre class="brush:js;toolbar:false;">$(document).ready(function() { $.ajaxSetup({ ヘッダー: { 'X-CSRF-TOKEN': "{{ csrf_token() }}" } }); }); </pre> <p>このアプローチではトークンが HTML 本文の外側に保持されますが、JavaScript ファイル内で Blade 構文を使用する必要があるため、懸念事項の分離が複雑になります。 <br /><br />方法 2: メタ タグから CSRF トークンを抽出する<br /><br />この方法では、CSRF トークンを HTML メタ タグに配置し、抽出して使用します。 AJAX セットアップで。 </p>


<p><code><meta name="csrf-token" content="{{ csrf_token() }}"> </code></p> <pre class="brush:js;toolbar:false;">$(document).ready(function() { $.ajaxSetup({ ヘッダー: { 'X-CSRF-トークン': $('meta[name="csrf-token"]').attr('content') } }); }); </pre> <p>このアプローチでは、トークンは HTML 内で公開されますが (いずれにしても公開されることになります)、JavaScript ファイルの管理と再利用が簡素化され、コード/懸念事項を分離しやすくなります。 <br /><br />上記を考慮すると、アプローチ 2 の方が洗練されており、懸念事項をより適切に分離できるため、アプローチ 2 の方が優れていると思います。それとも、AJAX リクエストを使用してセキュリティとコード構成のより良いバランスを提供するときに CSRF トークンの配置を管理するための Laravel の他のベストプラクティスはありますか?皆様のご意見をお待ちしております。 <br /><br />PS: https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html などを見ましたが、一部は私の理解を超えています。 </p>


P粉242741921
P粉242741921

全員に返信(1)
P粉988025835

トークンは、それを所有したいユーザーにのみ公開されます (そのため、ユーザーはトークンをあなたに送り返すことができます)。

攻撃者に公開されることはありません。 (何らかの方法でサーバーとブラウザ間の通信を侵害した場合、つまり CSRF 攻撃が成功した場合よりも多くのアクセスを獲得した場合を除きます。)

直接オプションを選択してください。


いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート