بخش جدید "شماره شبا" در وبسایت به صورت رسمی فعال شده و هم‌اکنون برای همه کاربران در دسترس میباشد.

مقالات

مشاهده مقاله
مشاهده تمامی مقالات
پربازدیدترین مقالات
خلاصه مقاله:‌

- خطای 419/page expired چیست؟

اول از همه باید این رو بگویم که این خطا، به این دو دلیل رخ میدهد:

1. مدت زمان طولانی است که درخواست به سرور ارسال نشده است و به همین دلیل token منتقضی میشود.

2. ممکن است که شما فیلد @csrf را درون form خود اضافه نکرده باشید، پس توکنی که فرم انتظار دارد تعریف نشده است و خطا دریافت خواهید کرد.

- راهکار 

راهکار شماره یک: صفحه را مجددا بارگذاری کنید (refresh)

راهکار شماره دو: فیلد @csrf را مثل کد زیر درون فرم خود قرار دهید:

<form action="/action" method="post">
@csrf

// input توکن اینجا قرار خواهد گرفت

</form
متن مقاله:‌

فریمورک لاراول یکی از فریمورک هایی میباشد که درباره امنیت بسیار حساس میباشد  بطور مثال در شما باید یک فیلد _token را درون فرم خود قرار بدهید تا لاراول متوجه بشود که آیا این درخواست از طریق کامپیوتر شما ارسال شده است یا توسط یک شخص دیگر (هکر) ارسال شده است. لاراول از csrf_token به خاطر این بررسی ساده استفاده میکند.

خطای 419/page expired چیست؟

اول از همه باید این رو بگویم که این خطا، به این دو دلیل رخ میدهد:

1. مدت زمان طولانی است که درخواست به سرور ارسال نشده است و به همین دلیل token منتقضی میشود.

2. ممکن است که شما فیلد @csrf را درون form خود اضافه نکرده باشید، پس توکنی که فرم انتظار دارد تعریف نشده است و خطا دریافت خواهید کرد.

راهکار 

راهکار شماره یک: صفحه را مجددا بارگذاری کنید (refresh)

راهکار شماره دو: فیلد @csrf را مثل کد زیر درون فرم خود قرار دهید:

<form action="/action" method="post">
@csrf

// input توکن اینجا قرار خواهد گرفت

</form

در اینجا یک راهکار دیگر هم برای انجام اینکار وجود دارد ما میتوانیم که توکن امنیتی CSRF را برای یک یا چند route غیرفعال بکنیم. برای اینکار باید ابتدا وارد فایل `VerifyCsrfToken` بشوید. بطور پیشفرض تمامی routeهایی که با روش GET کار میکنند نیازی به وارد کردن CSRF توکن ندارد. اگر شما میخواهید که توکن امنیتی CSRF را برای یک یا چند route خاص غیرفعال کنید باید وارد فایل `VerifyCsrfToken` بشوید و داخل متغیر $except آدرس روتی که میخواهد CSRF را برایش غیرفعال کنید وارد کنید. شما در این آرایه میتوانید هر تعداد route را که نیاز به CSRF توکن ندارند را قرار دهید و غیرفعال کنید. در اینجا مثالی برای شما آورده‌ایم:

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;

class VerifyCsrfToken extends Middleware
{
    protected $except = [
        'articles/*', // غیر فعال کردن CSRF توکن برای آدرس‌هایی که با articles شروع میشوند
    ];
} 

 در این مثال تمامی route هایی که با `articles` شروع میشوند نیازی به وارد کردن CSRF توکن ندارند.

اگر شما از راهکارهایی که در بالای مقاله گفتیم را استفاده کرده باشید دیگر خطای 419 در برنامه خود نخواهید داشت، چون شما میدانید که باید صفحه را بارگذاری مجدد (refresh) کنید. 

 

منبع: educative

برای ارسال نظر ابتدا باید وارد حساب خود شوید.
تاکنون نظری ثبت نشده است.
0
0
زمان مطالعه:2دقیقه
اطلاعات مقاله
نویسنده:علیرضا تحریری
تگ‌ها: #خطای 419 #خطای Page Expired #خطای 419/Page Expired #خطای 419/Page Expired لاراول #خطای 419/Page Expired در لاراول #خطای 419/Page Expired در لاراول چیست #لاراول #دلیل خطا Page Expired #خطا 419 #خطا Page Expired
زبان:فارسی
دسترسی:عمومی
تاریخ انتشار:سه‌شنبه، 30 خرداد 1402
تاریخ بروزرسانی:سه‌شنبه، 30 خرداد 1402
لینک کوتاه: https://mimoc.ir/a/10006

سایر مقالات

مقالات پیشنهادی
مشاهده تمامی مقالات