{"id":766,"date":"2025-06-11T23:10:36","date_gmt":"2025-06-11T15:10:36","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/766.html"},"modified":"2025-06-11T23:10:36","modified_gmt":"2025-06-11T15:10:36","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8laravel%e4%b8%ad%e7%a6%81%e7%94%a8%e6%88%96%e5%90%af%e7%94%a8csrf%e4%bf%9d%e6%8a%a4","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/766.html","title":{"rendered":"\u5982\u4f55\u5728Laravel\u4e2d\u7981\u7528\u6216\u542f\u7528CSRF\u4fdd\u62a4"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;Laravel&#20013;&#65292;CSRF&#65288;&#36328;&#31449;&#35831;&#27714;&#20266;&#36896;&#65289;&#20445;&#25252;&#26159;&#38450;&#27490;&#24694;&#24847;&#29992;&#25143;&#36890;&#36807;&#20266;&#36896;&#35831;&#27714;&#26469;&#35775;&#38382;&#21463;&#20445;&#25252;&#30340;&#36164;&#28304;&#30340;&#19968;&#31181;&#26426;&#21046;&#12290;&#40664;&#35748;&#24773;&#20917;&#19979;&#65292;Laravel&#20250;&#33258;&#21160;&#21551;&#29992;CSRF&#20445;&#25252;&#12290;&#28982;&#32780;&#65292;&#26377;&#26102;&#20320;&#21487;&#33021;&#38656;&#35201;&#31105;&#29992;&#25110;&#21551;&#29992;&#36825;&#20010;&#20445;&#25252;&#12290;<\/p>\n<h3>&#31105;&#29992;CSRF&#20445;&#25252;<\/h3>\n<p>&#22914;&#26524;&#20320;&#24076;&#26395;&#22312;&#26576;&#20123;&#29305;&#23450;&#26465;&#20214;&#19979;&#31105;&#29992;CSRF&#20445;&#25252;&#65292;&#21487;&#20197;&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;<code>$csrfProtection<\/code>&#23646;&#24615;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateFoundationBusDispatchesRequests;\nuse IlluminateRoutingController as BaseController;\nuse IlluminateFoundationValidationValidatesRequests;\n\nclass ExampleController extends BaseController\n{\n    use DispatchesRequests, ValidatesRequests;\n\n    \/**\n     * Disable CSRF protection for this controller.\n     *\n     * @return void\n     *\/\n    public function __construct()\n    {\n        $this-&gt;middleware('web');\n        $this-&gt;middleware('disable-csrf-protection'); \/\/ &#33258;&#23450;&#20041;&#20013;&#38388;&#20214;\n    }\n\n    \/**\n     * Example method to demonstrate CSRF protection being disabled.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function disableCsrfExample()\n    {\n        return view('example.disable_csrf');\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;&#33258;&#23450;&#20041;&#30340;&#20013;&#38388;&#20214;<code>disable-csrf-protection<\/code>&#65292;&#24182;&#22312;&#26500;&#36896;&#20989;&#25968;&#20013;&#23558;&#20854;&#24212;&#29992;&#21040;&#25152;&#26377;&#36335;&#30001;&#19978;&#12290;<\/p>\n<h3>&#21551;&#29992;CSRF&#20445;&#25252;<\/h3>\n<p>&#22914;&#26524;&#20320;&#24819;&#22312;&#26576;&#20123;&#29305;&#23450;&#26465;&#20214;&#19979;&#21551;&#29992;CSRF&#20445;&#25252;&#65292;&#21487;&#20197;&#20351;&#29992;<code>$csrfProtection<\/code>&#23646;&#24615;&#24182;&#35774;&#32622;&#20026;<code>false<\/code>&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateFoundationBusDispatchesRequests;\nuse IlluminateRoutingController as BaseController;\nuse IlluminateFoundationValidationValidatesRequests;\n\nclass ExampleController extends BaseController\n{\n    use DispatchesRequests, ValidatesRequests;\n\n    \/**\n     * Enable CSRF protection for this controller.\n     *\n     * @return void\n     *\/\n    public function __construct()\n    {\n        $this-&gt;middleware('web');\n        $this-&gt;middleware('enable-csrf-protection'); \/\/ &#33258;&#23450;&#20041;&#20013;&#38388;&#20214;\n    }\n\n    \/**\n     * Example method to demonstrate CSRF protection being enabled.\n     *\n     * @return IlluminateHttpResponse\n     *\/\n    public function enableCsrfExample()\n    {\n        return view('example.enable_csrf');\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;&#33258;&#23450;&#20041;&#30340;&#20013;&#38388;&#20214;<code>enable-csrf-protection<\/code>&#65292;&#24182;&#22312;&#26500;&#36896;&#20989;&#25968;&#20013;&#23558;&#20854;&#24212;&#29992;&#21040;&#25152;&#26377;&#36335;&#30001;&#19978;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;&#30456;&#20851;&#27493;&#39588;<\/h3>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;&#33258;&#23450;&#20041;&#20013;&#38388;&#20214;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:middleware DisableCsrfProtection<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#32534;&#36753;&#20013;&#38388;&#20214;&#25991;&#20214;<\/strong>&#65306;\n&#25171;&#24320; <code>app\/Http\/Middleware\/DisableCsrfProtection.php<\/code> &#25991;&#20214;&#65292;&#24182;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpMiddleware;\n\nuse Closure;\n\nclass DisableCsrfProtection\n{\n   public function handle($request, Closure $next)\n   {\n       \/\/ &#36825;&#37324;&#21487;&#20197;&#28155;&#21152;&#19968;&#20123;&#36923;&#36753;&#26469;&#20915;&#23450;&#26159;&#21542;&#31105;&#29992;CSRF&#20445;&#25252;\n       \/\/ &#20363;&#22914;&#65292;&#26681;&#25454;&#24403;&#21069;&#29615;&#22659;&#25110;&#29992;&#25143;&#36523;&#20221;&#36827;&#34892;&#21028;&#26029;\n       if (\/* &#26465;&#20214; *\/) {\n           $request-&gt;headers-&gt;remove('X-CSRF-TOKEN');\n       }\n\n       return $next($request);\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#27880;&#20876;&#20013;&#38388;&#20214;<\/strong>&#65306;\n&#22312; <code>app\/Http\/Kernel.php<\/code> &#25991;&#20214;&#20013;&#27880;&#20876;&#36825;&#20010;&#20013;&#38388;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">protected $routeMiddleware = [\n   'auth' =&gt; AppHttpMiddlewareAuthenticate::class,\n   'can' =&gt; AppHttpMiddlewareCan::class,\n   'guest' =&gt; AppHttpMiddlewareRedirectIfAuthenticated::class,\n   'csrf' =&gt; AppHttpMiddlewareVerifyCsrfToken::class,\n   'disable-csrf-protection' =&gt; AppHttpMiddlewareDisableCsrfProtection::class,\n   'enable-csrf-protection' =&gt; AppHttpMiddlewareEnableCsrfProtection::class,\n];<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#24212;&#29992;&#20013;&#38388;&#20214;<\/strong>&#65306;\n&#22312;&#25511;&#21046;&#22120;&#20013;&#20351;&#29992;&#36825;&#20010;&#20013;&#38388;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse IlluminateFoundationBusDispatchesRequests;\nuse IlluminateRoutingController as BaseController;\nuse IlluminateFoundationValidationValidatesRequests;\n\nclass ExampleController extends BaseController\n{\n   use DispatchesRequests, ValidatesRequests;\n\n   \/**\n    * Disable CSRF protection for this controller.\n    *\n    * @return void\n    *\/\n   public function __construct()\n   {\n       $this-&gt;middleware('web');\n       $this-&gt;middleware('disable-csrf-protection'); \/\/ &#33258;&#23450;&#20041;&#20013;&#38388;&#20214;\n   }\n\n   \/**\n    * Example method to demonstrate CSRF protection being disabled.\n    *\n    * @return IlluminateHttpResponse\n    *\/\n   public function disableCsrfExample()\n   {\n       return view('example.disable_csrf');\n   }\n}<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#36890;&#36807;&#36825;&#20123;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#28789;&#27963;&#22320;&#25511;&#21046;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;CSRF&#20445;&#25252;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#36328;&#31449;&#35831;&#27714;&#20266;&#36896;&#65288;CSRF&#65289;&#26159;&#19968;&#31181;&#24120;&#35265;&#20110;web&#24212;&#29992;&#31243;&#24207;&#30340;&#23433;&#20840;&#28431;&#27934;&#12290;Laravel&#65292;&#19968;&#20010;&#27969;&#34892;&#30340;PHP&#26694;&#26550;&#65292;&#40664;&#35748;&#21253;&#21547;CSRF&#20445;&#25252;&#20197;&#30830;&#20445;&#24212;&#29992;&#31243;&#24207;&#30340;&#23433;&#20840;&#24615;&#12290;&#28982;&#32780;&#65292;&#22312;&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;&#24320;&#21457;&#20154;&#21592;&#21487;&#33021;&#38656;&#35201;&#36873;&#25321;&#24615;&#22320;&#31105;&#29992;&#25110;&#21551;&#29992;CSRF&#20445;&#25252;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#25506;&#32034;&#22914;&#20309;&#22312;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#36827;&#34892;&#27492;&#31867;&#25805;&#20316;&#65292;&#21253;&#25324;&#20174;&#22522;&#26412;&#21040;&#39640;&#32423;&#30340;&#20195;&#30721;&#31034;&#20363;&#12290;<\/p><h2>&#29702;&#35299; Laravel &#20013;&#30340; CSRF &#20445;&#25252;<\/h2><p>Laravel &#21253;&#21547;&#33258;&#21160;&#26816;&#26597;&#27599;&#20010; POST&#12289;PUT&#12289;PATCH &#25110; DELETE &#35831;&#27714;&#20013;&#30340; CSRF &#20196;&#29260;&#30340;&#20013;&#38388;&#20214;&#12290;&#36825;&#20010;&#20196;&#29260;&#30830;&#20445;&#35831;&#27714;&#26469;&#33258;&#21516;&#19968;&#20010;&#24212;&#29992;&#65292;&#38450;&#27490;&#26410;&#32463;&#25480;&#26435;&#30340;&#25805;&#20316;&#12290;&#36825;&#20010;&#20013;&#38388;&#20214;&#20840;&#23616;&#24212;&#29992;&#20110;&#25152;&#26377;&#35831;&#27714;&#65292;&#20294; Laravel &#20063;&#25552;&#20379;&#20102;&#31649;&#29702;&#20854;&#34892;&#20026;&#30340;&#26041;&#27861;&#12290;<\/p><pre><code>&lt;!-- Example of a CSRF field in a Laravel form --&gt;\n &lt;form method=\"POST\" action=\"{{ route('example.route') }}\"&gt;\n     @csrf\n     &lt;!-- Other form fields --&gt;\n &lt;\/form&gt;<\/code><\/pre><h2>&#22312;Laravel&#20013;&#31105;&#29992;CSRF&#20445;&#25252;&#12290;<\/h2><p>&#35201;&#31105;&#29992;CSRF&#20445;&#25252;&#65292;&#24744;&#21487;&#20197;&#20462;&#25913;&#12290;<code>VerifyCsrfToken<\/code>&#20013;&#38388;&#20214;&#12290;&#20174;&#22522;&#26412;&#30340;&#36335;&#30001;&#25490;&#38500;&#24320;&#22987;&#65292;&#32534;&#36753;&#37197;&#32622;&#25991;&#20214;&#12290;<code>$except<\/code>property.<\/p><pre><code>namespace AppHttpMiddleware;\n\nuse IlluminateFoundationHttpMiddlewareVerifyCsrfToken as Middleware;\n\nclass VerifyCsrfToken extends Middleware\n{\n    protected $except = [\n        'route\/to\/exclude',\n        'another\/route\/to\/exclude',\n    ];\n}\n<\/code><\/pre><p>&#22312;&#36825;&#19968;&#37197;&#32622;&#19979;&#65292;&#25351;&#23450;&#30340;&#36335;&#30001;&#12290;<code>$except<\/code>&#25968;&#32452;&#19981;&#20250;&#26816;&#26597;CSRF&#20196;&#29260;&#12290;<\/p><h2>&#20026;API&#36335;&#30001;&#31105;&#29992;CSRF&#20445;&#25252;<\/h2><p>API&#36890;&#24120;&#20351;&#29992;&#20196;&#29260;&#36827;&#34892;&#36523;&#20221;&#39564;&#35777;&#65292;&#19981;&#38656;&#35201;CSRF&#20445;&#25252;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807;&#24212;&#29992;&#20013;&#38388;&#20214;&#26469;&#25353;&#32452;&#37197;&#32622;&#20320;&#30340;API&#36335;&#30001;&#65292;&#20174;&#32780;&#31105;&#29992;CSRF&#26816;&#26597;&#12290;<\/p><pre><code>\/\/ In your routes file (e.g., web.php or api.php)\nRoute::group(['middleware' =&gt; ['api']], function () {\n    \/\/ Your API routes\n});\n\n\/\/ In the RouteServiceProvider class\nprotected function mapApiRoutes()\n{\n    Route::prefix('api')\n        -&gt;middleware('api')\n        -&gt;namespace($this-&gt;namespace)\n        -&gt;group(base_path('routes\/api.php'));\n}\n<\/code><\/pre><h2>&#22312;&#29305;&#23450;&#30340;&#36335;&#30001;&#19978;&#21551;&#29992;CSRF&#20445;&#25252;&#12290;<\/h2><p>&#22914;&#26524;&#20320;&#24050;&#32463;&#20840;&#23616;&#31105;&#29992;&#20102;CSRF&#20445;&#25252;&#65292;&#21487;&#33021;&#38656;&#35201;&#20026;&#26576;&#20123;&#36335;&#30001;&#37325;&#26032;&#21551;&#29992;&#23427;&#12290;&#36825;&#30456;&#23545;&#36739;&#23569;&#35265;&#65292;&#20294;&#21487;&#20197;&#36890;&#36807;&#24212;&#29992;&#20197;&#19979;&#20195;&#30721;&#26469;&#23454;&#29616;&#65306;<code>web<\/code>&#20013;&#38388;&#20214;&#12290;<\/p><pre><code>Route::post('protected\/route', function () {\n     \/\/ Route logic\n })-&gt;middleware('web');<\/code><\/pre><p>&#36890;&#36807;&#24212;&#29992;<code>web<\/code>&#22312;&#35813;&#36335;&#30001;&#19978;&#28155;&#21152;&#20013;&#38388;&#20214;&#26102;&#65292;&#24744;&#24050;&#21253;&#21547;CSRF&#20445;&#25252;&#12290;<\/p><h2>&#27491;&#22312;&#27979;&#35797;CSRF&#20445;&#25252;&#25514;&#26045;&#12290;<\/h2><p>&#22312;&#20462;&#25913;CSRF&#20445;&#25252;&#35774;&#32622;&#26102;&#65292;&#38750;&#24120;&#37325;&#35201;&#30340;&#26159;&#35201;&#24443;&#24213;&#27979;&#35797;&#23427;&#20204;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#20026;&#19968;&#20010;&#21463;CSRF&#20445;&#25252;&#30340;&#36335;&#30001;&#32534;&#20889;&#21151;&#33021;&#27979;&#35797;&#30340;&#31034;&#20363;&#12290;<\/p><pre><code>public function disable_test_route_without_middleware()\n {\n     $response = $this-&gt;withoutMiddleware()-&gt;post('\/route\/to\/test', []);\n     $response-&gt;assertStatus(200);\n }<\/code><\/pre><p>&#35813;&#27979;&#35797;&#30830;&#35748;&#65292;&#19981;&#24212;&#29992;CSRF&#20013;&#38388;&#20214;&#30340;&#24773;&#20917;&#19979;&#65292;&#36335;&#32447;&#26159;&#21487;&#35775;&#38382;&#30340;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#20171;&#32461;&#20102;&#22914;&#20309;&#21551;&#29992;&#21644;&#31105;&#29992;Laravel&#24212;&#29992;&#20013;&#30340;CSRF&#20445;&#25252;&#25514;&#26045;&#12290;&#27491;&#22914;&#24744;&#25152;&#23398;&#20064;&#30340;&#37027;&#26679;&#65292;&#31649;&#29702;CSRF&#20445;&#25252;&#23545;&#20110;&#30830;&#20445;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#23433;&#20840;&#24615;&#21644;&#28789;&#27963;&#24615;&#33267;&#20851;&#37325;&#35201;&#12290;&#35831;&#35760;&#20303;&#65292;&#22312;&#26356;&#25913;&#20219;&#20309;CSRF&#35774;&#32622;&#21518;&#35201;&#24443;&#24213;&#27979;&#35797;&#20197;&#30830;&#20445;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#20173;&#28982;&#23433;&#20840;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#65292;&#20320;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#20004;&#31181;&#26041;&#24335;&#26469;&#21551;&#29992;&#21644;&#31105;&#29992; CSRF &#20445;&#25252;&#65306;<\/p>\n<ol>\n<li>\n<p><strong>&#21551;&#29992; CSRF &#20445;&#25252;<\/strong><\/p>\n<p>&#22312; <code>config\/app.php<\/code> &#25991;&#20214;&#30340; <code>csrf_protection<\/code> &#23646;&#24615;&#35774;&#32622;&#20026; <code>false<\/code>&#12290;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">return [\n    \/\/ ...\n    'csrf_protection' =&gt; false,\n];<\/code><\/pre>\n<p>&#36825;&#23558;&#20351;&#24212;&#29992;&#31243;&#24207;&#23436;&#20840;&#19981;&#21463; CSRF &#30340;&#20445;&#25252;&#12290;<\/p>\n<ol start=\"2\">\n<li>\n<p><strong>&#31105;&#29992; CSRF &#20445;&#25252;<\/strong><\/p>\n<p>&#22914;&#26524;&#20320;&#24819;&#26242;&#26102;&#31105;&#29992; CSRF &#20445;&#25252;&#65292;&#21487;&#20197;&#20351;&#29992;&#20197;&#19979;&#26041;&#27861;&#65306;<\/p>\n<ul>\n<li>&#20351;&#29992; <code>protected_methods()<\/code> &#26041;&#27861;&#65306;&#22914;&#26524;&#20320;&#27491;&#22312;&#22788;&#29702; HTTP &#35831;&#27714;&#65292;&#24182;&#19988;&#24076;&#26395;&#38459;&#27490; CSRF &#34987;&#26816;&#27979;&#21040;&#65292;&#21487;&#20197;&#36890;&#36807; <code>protected_methods()<\/code> &#26041;&#27861;&#28155;&#21152;&#33258;&#23450;&#20041;&#30340;&#26041;&#27861;&#21517;&#12290;<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public function protectedMethods()\n{\n    return ['authenticate'];\n}<\/code><\/pre>\n<ul>\n<li>&#20351;&#29992; <code>csrf_field()<\/code> &#21644; <code>csrf_token()<\/code> &#26041;&#27861;&#65306;&#36825;&#20123;&#26041;&#27861;&#20250;&#29983;&#25104;&#19968;&#20010;&#29992;&#20110;&#39564;&#35777;&#35831;&#27714;&#26159;&#21542;&#20026;&#24694;&#24847;&#25915;&#20987;&#32773;&#30340;&#23383;&#27573;&#21644;&#20196;&#29260;&#12290;&#24403;&#29992;&#25143;&#23581;&#35797;&#25552;&#20132;&#34920;&#21333;&#26102;&#65292;&#36825;&#20123;&#23383;&#27573;&#20250;&#34987;&#33258;&#21160;&#22635;&#20805;&#65292;&#24182;&#19988;&#26381;&#21153;&#22120;&#20250;&#26816;&#26597;&#23427;&#20204;&#26159;&#21542;&#19982;&#20196;&#29260;&#21305;&#37197;&#12290;<\/li>\n<\/ul>\n<pre><code class=\"language-php\">\/\/ &#26816;&#26597;&#35831;&#27714;&#26159;&#21542;&#26159;&#24694;&#24847;&#25915;&#20987;&#32773;\nif (! $this-&gt;request-&gt;isCsrf()) {\n    abort(403);\n}\n\n$token = csrf_token();\n\necho '&lt;input type=\"hidden\" name=\"_token\" value=\"' . $token . '\"&gt;';\n\n\/\/ &#22914;&#26524;&#25552;&#20132;&#30340;&#25968;&#25454;&#27809;&#26377; token&#65292;&#21017;&#26174;&#31034;&#38169;&#35823;&#28040;&#24687;&#24182;&#36820;&#22238; 403 &#38169;&#35823;&#12290;\nif ($this-&gt;request-&gt;session()-&gt;has('_token')) {\n    echo '&lt;div class=\"alert alert-danger\"&gt;Invalid CSRF Token!&lt;\/div&gt;';\n    return redirect('\/')-&gt;with('error', 'Invalid CSRF Token!');\n}<\/code><\/pre>\n<p>&#20197;&#19978;&#23601;&#26159;&#22312; Laravel &#20013;&#31105;&#29992;&#25110;&#21551;&#29992; CSRF &#20445;&#25252;&#30340;&#26041;&#27861;&#12290;&#26681;&#25454;&#20320;&#30340;&#38656;&#27714;&#36873;&#25321;&#21512;&#36866;&#30340;&#26041;&#24335;&#21363;&#21487;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312;Laravel&#20013;&#65292;CSRF&#65288;&#36328;&#31449;&#35831;&#27714;&#20266;&#36896;&#65289;&#20445;&#25252;&#26159;&#38450;&#038;..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-766","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=766"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=766"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=766"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}