上一篇
Laravel默认通过同步器令牌模式提供CSRF防护,核心步骤如下:
web
中间件组默认包含VerifyCsrfToken
中间件。@csrf
指令,生成隐藏字段<input type="hidden" name="_token" value="...">
。<meta name="csrf-token" content="{{ csrf_token() }}">
和请求头X-CSRF-TOKEN
传递令牌。// app/Http/Kernel.php protected $middlewareGroups = [ 'web' => [ // 注释或删除以下行 // \App\Http\Middleware\VerifyCsrfToken::class, ], ];
// app/Http/Middleware/VerifyCsrfToken.php protected $except = [ 'api/*', // 排除所有API路由 'webhook/*', // 第三方回调接口 'payment/callback', // 支付网关通知 ];
// app/Http/Kernel.php protected $middlewareGroups = [ 'no-csrf' => [ \Illuminate\Session\Middleware\StartSession::class, // 其他中间件(不含VerifyCsrfToken) ], ]; // 路由中使用 Route::group(['middleware' => 'no-csrf'], function () { Route::post('/api/data', 'ApiController@store'); });
sanctum
或passport
实现API认证。// config/auth.php 'guards' => [ 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ],
$signature = hash_hmac('sha256', $payload, env('STRIPE_SECRET')); if ($signature !== $request->header('Stripe-Signature')) { abort(403); }
.env
中启用安全Cookie。SESSION_SECURE_COOKIE=true APP_URL=https://yourdomain.com
// config/session.php 'driver' => env('SESSION_DRIVER', 'redis'), 'lifetime' => 120, // 2小时
$request->validate([ 'email' => 'required|email|max:255|unique:users', 'password' => 'required|min:8', ]);
// resources/lang/en/validation.php return [ 'custom' => [ 'email' => [ 'unique' => '该邮箱已被注册,请换一个试试~ 😅', ], ], ];
<input type="text" name="username" value="{{ old('username') }}">
// 通过meta标签获取令牌 const token = document.head.querySelector('meta[name="csrf-token"]').content; axios.defaults.headers.common['X-CSRF-TOKEN'] = token;
web
中间件组。// 登录控制器 public function login(Request $request) { $credentials = $request->only('email', 'password'); if (Auth::attempt($credentials)) { return redirect()->intended('/dashboard'); } return back()->withErrors(['email' => '登录失败,请重试~ 😥']); }
通过合理配置CSRF-None机制,并结合其他安全措施,您可以在Laravel应用中实现高效与安全的平衡! 🚀
本文由 业务大全 于2025-08-25发表在【云服务器提供商】,文中图片由(业务大全)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://xdh.7tqx.com/wenda/729804.html
发表评论