"পৃষ্ঠাটি নিষ্ক্রিয়তার কারণে শেষ হয়ে গেছে" - লারাভেল ৫.৫


111

আমার রেজিস্টার পৃষ্ঠাটি ফর্মটিতে {{ csrf_field() }}উপস্থিত সিএসআরফটোকেন ( ) ফর্মটি সঠিকভাবে দেখাচ্ছে ।

ফর্ম এইচটিএমএল

<form class="form-horizontal registration-form" novalidate method="POST" action="{{ route('register') }}">
        {{ csrf_field() }}
        ....
</form>

আমি ব্যবহারকারীদের জন্য ইনবিল্ট প্রমাণীকরণ ব্যবহার করছি। রুট এবং পুনঃনির্দেশগুলি ব্যতীত অন্য কোনও পরিবর্তন করা হয়নি।

আমি যখন ফর্মটি জমা দিই (কেবল পুনরায় লোড করার পরেও), এটি দেয় যে পৃষ্ঠাটি নিষ্ক্রিয়তার কারণে শেষ হয়ে গেছে। রিফ্রেশ করুন এবং আবার চেষ্টা করুন। ত্রুটি.

আমার হতে হবে আমি খুব ছোট একটি জিনিস মিস করছি। তবে এটি কী তা নিশ্চিত নয়। কোন সাহায্য?

হালনাগাদ

বিষয়টি খুঁজে পেয়েছি Found সেশন ড্রাইভার অ্যারে সেট করা হয়েছিল। এটিকে ফাইলটিতে পরিবর্তন করা হয়েছে এবং ত্রুটিটি এখন চলে গেছে। তবে আমি অ্যারে ব্যবহার করলে ভুল কি?


স্টোরেজ_পথটি লিখনযোগ্য না হওয়ার সাথে কিছু করার থাকতে পারে। এটিই যেখানে আপনি ফাইল ভিত্তিক সেশন ব্যবহার করছেন তা টোকেন সম্পর্কিত সেশন ডেটা সংরক্ষণ করে।
ডিভন

1
বিষয়টি খুঁজে পেয়েছি Found সেশন ড্রাইভার সেট করা হয়েছিল array। এটিকে ফাইলটিতে পরিবর্তন করা হয়েছে এবং ত্রুটিটি এখন চলে গেছে। তবে আমি অ্যারে ব্যবহার করলে ভুল কি?
সৌগত বোস

অথবা এই URL টি চেক stackoverflow.com/questions/39997180/...
Fatih TÜZEN

1
লারাভেলের নতুন সংস্করণের জন্য, সমস্যা সমাধানের জন্য @ সিএসআরএফ ব্যবহার করুন।
ভুং ট্রান

উত্তর:


164

আপনি যদি কোনও উত্তর থেকে সরাসরি এই উত্তরে আসছেন তবে নিশ্চিত হয়ে নিন যে আপনি ইতিমধ্যে অপের {{ csrf_field() }}মতো আপনার ফর্মটিতে সিএসআরএফ টোকেন যুক্ত করেছেন ।


যদি আপনার সেশন ড্রাইভার ফাইল করতে সেট করে থাকে:

স্টোরেজ_পথটি লিখনযোগ্য না হওয়ার সাথে কিছু করার থাকতে পারে। এটিই যেখানে আপনি ফাইল ভিত্তিক সেশন ব্যবহার করছেন তা টোকেন সম্পর্কিত সেশন ডেটা সংরক্ষণ করে। এর সাথে যাচাই করা যায়is_writable(config('session.files'))


ওপি-র জন্য, সেশন ড্রাইভারটি অ্যারেতে সেট করা হয়েছিল। অ্যারে কেবল পরীক্ষার জন্য। যেহেতু ডেটা স্থায়ী নয় তাই এটি পরবর্তী অনুরোধে টোকেনের তুলনা করতে সক্ষম হবে না।

অ্যারে ড্রাইভারটি পরীক্ষার সময় ব্যবহৃত হয় এবং সেশনে সঞ্চিত ডেটা স্থির রাখতে বাধা দেয়।

https://laravel.com/docs/5.5/session#configuration


কনফিগারেশন / সেশন.এফপি পরীক্ষা করুন

শেষ অবধি, আমার সবেমাত্র একটি সমস্যা ছিল, আমাদের একটি প্রকল্প ছিল যা কনফিগারেশন / সেশন.পিপিতে সেশন ডোমেন এবং সুরক্ষিত সেটিংস রয়েছে তবে উন্নয়ন সাইটটি এইচটিটিপিএস (এসএসএল / টিএলএস) ব্যবহার করছে না। সেশনস.সিকিউরটি ডিফল্টরূপে সত্যে সেট করা হওয়ার পরে এটি এই জেনেরিক ত্রুটি ঘটায়।


3
ঠিক আছে. তবে আপাতত তা বিকাশে রয়েছে। সুতরাং আমি যদি অ্যারে ব্যবহার করি তবে এটি আমাকে কেন ত্রুটি দিচ্ছে?
সৌগত বোস

@ সৌগটাবোস পরীক্ষাটি উন্নয়ন হয় না। অ্যারের ডেটা স্থায়ী হয় না ...
ডিভন

ঠিক এই কারণেই ডওসিগুলির মাধ্যমে সঠিকভাবে যাওয়ার উচিত ... :)
সৌগত বোস

আমার সমস্যা সমাধান করা হয়নি। আমি বুনিয়াদি সত্যই করেছি। তবে আমি কাস্টম সরবরাহকারী এবং পরিষেবাগুলি ব্যবহার করছি। আমি যখন কোনও কন্ট্রোলার পদ্ধতি কল করি তখন কোনও সমস্যা হয় না তবে যখন আমি কোনও নিয়ামকটিতে কোনও পরিষেবা পদ্ধতি চালিত করি যা পোস্ট অনুরোধের সাথে ডেকে আনে তখন সমস্যাটি উপস্থিত হয়!
বেহনম আজিমি

1
আমার সেশনগুলির সাথে একই রকম সমস্যা ছিল তবে পরীক্ষার ক্ষেত্রে। আমি যখন Carbon::setTestNow($time);পরীক্ষাগুলি ব্যবহার করছিলাম তখন চালু হয়ে গেল আমি Carbon::setTestNow();পরে ব্যবহার করে এটি সাফ করছি না ।
দাঙ্গা কোড

77

আমি লারাভেল 5.5 তে একই ইস্যুতে দৌড়েছি। আমার ক্ষেত্রে এটি জিইটি থেকে পোষ্টের রুট পরিবর্তনের পরে ঘটেছিল। সমস্যাটি ছিল কারণ আমি যখন পোস্টে স্যুইচ করেছি তখন আমি কোনও সিএসআরএফ টোকেন পাস করতে ভুলে গিয়েছিলাম।

আপনি হয় কল করে নিজের ফর্মে একটি সিএসআরএফ টোকেন পোস্ট করতে পারেন:

 {{ csrf_field() }}

অথবা অ্যাপ্লিকেশন / এইচটিটিপি / মিডলওয়্যার / ভেরিফাইসিএসআরফ টোকেন.এফপিতে আপনার রুটটি বাদ দিন

 protected $except = [
        'your/route'
    ];

2
csrf_field()ফর্মে উপস্থিত গৃহীত উত্তর বিষয়টি বর্ণনা করে। ধন্যবাদ।
সৌগত বোস

1
আমার ক্ষেত্রে, আমি একটি তৃতীয় পক্ষের থেকে একটি পোষ্ট পেয়েছিলাম, সুতরাং csrf_field () যুক্ত করা কোনও বিকল্প ছিল না। সিএসআরএফ যেহেতু আমার ক্ষেত্রে ফ্যাক্টর ছিল না, তাই এই রুটে একটি ব্যতিক্রম যুক্ত করে সমস্যার সমাধান করে। ধন্যবাদ।
ফেবিও ডিউক সিলভা

আমার সমস্যা সমাধান করা হয়নি। আমি বুনিয়াদি সত্যই করেছি। তবে আমি কাস্টম সরবরাহকারী এবং পরিষেবাগুলি ব্যবহার করছি। আমি যখন কোনও কন্ট্রোলার পদ্ধতি কল করি তখন কোনও সমস্যা হয় না তবে যখন আমি কোনও নিয়ামকটিতে কোনও পরিষেবা পদ্ধতি চালিত করি যা পোস্ট অনুরোধের সাথে ডেকে আনে তখন সমস্যাটি উপস্থিত হয়!
বেহনম আজিমি

1
দয়া করে সিএসআরএফ যাচাইকরণ অক্ষম করবেন না! এটি রক্ষা করা খুব গুরুত্বপূর্ণ। কীভাবে টোকেন প্রেরণ করা যায় এবং আপনার লগ ইন করা ব্যবহারকারীদের দূষিত জাভাস্ক্রিপ্ট থেকে সুরক্ষিত করা যায় যা তাদের পক্ষে ক্রিয়া জমা দিতে পারে।
ডিভন



6

আমার কেসটি সমাধান করা হয়েছিল SESSION_DOMAIN, আমার লোকাল মেশিনে সেট আপ করতে হয়েছিল xxx.localhost। এটি উত্পাদনের সাথে দ্বন্দ্ব সৃষ্টি করেছিল SESSION_DOMAIN, xxx.comএটি সরাসরি সেশন.এফপি কনফিগার ফাইলে সেট করা হয়েছিল।


আপনি কোন সেশন ড্রাইভারটি ব্যবহার করছিলেন? fileবা cookie?
কিটেলডগ

4

কিছু তথ্য কুকিতে সংরক্ষিত থাকে যা বিকাশের লারাভেলের পূর্ববর্তী সংস্করণগুলির সাথে সম্পর্কিত। সুতরাং এটি সিএসআরএফ উত্পাদিত টোকেনগুলির সাথে বিরোধী যা অন্যের সংস্করণ দ্বারা উত্পাদিত হয়। শুধু কুকি সাফ করুন এবং চেষ্টা করুন।


আপনি কি <input type="hidden" name="_token" value="Umr1AlG3sScdUWGtMoHcQPPKASsR7qsd5ZE1H3Xv">এইচটিএমএল তৈরির ধরণের কোড দেখতে পেলেন ?
সুরেশ ভেলুসামি

এটা সেখানে. বিষয়টি খুঁজে পেয়েছি Found সেশন ড্রাইভার অ্যারে সেট করা হয়েছিল। এটিকে ফাইলটিতে পরিবর্তন করা হয়েছে এবং ত্রুটিটি এখন চলে গেছে।
সৌগত বোস

4

যাদের এখনও সমস্যা আছে এবং কিছুই সাহায্য করেনি। Php.ini mbstring.func_overload প্যারামিটারে মনোযোগ দিন। এটি 0 তে সেট করতে হবে এবং mbstring.intern_encoding ইউটিএফ -8 এ সেট করতে হবে। আমার ক্ষেত্রে এটি একটি সমস্যা ছিল।


আপনাকে অনেক ধন্যবাদ! আপনার উত্তরটি আমার মস্তিষ্ককে ক্রাশ থেকে রক্ষা করেছে)
রুস্তেমবেক কালিয়েভ

3

আমি সঞ্চয়ের অনুমতি পরিবর্তন করেছি এবং ত্রুটি চলে গেছে। মনে হচ্ছিল অনুমতিটির অভাবই বিষয়টি ছিল।

sudo chmod -R 775 storage/

2
পুনরাবৃত্তিমূলক এই ধরনের খোলা অনুমতি ব্যবহার সতর্কতা অবলম্বন করুন। আমি ফাইলগুলির জন্য 775 এর বিপরীতে সুপারিশ করব। ডিরেক্টরিগুলির জন্য 755 এবং ফাইলগুলির জন্য 644 আদর্শ।
ডিভন

3

যোগ @csrfআকারে এবং VerifyCsrfToken.php যেতে

একটি 'অ্যাপ্লিকেশান> Http-> Middleware-> VerifyCsrfToken.php

protected $except = [
        'paste your route here'
    ];

1

আমার ক্ষেত্রে, সাইটটি সার্ভারে ভাল ছিল তবে স্থানীয় নয়। তখন আমি মনে করি আমি নিরাপদ ওয়েবসাইটে কাজ করছিলাম।
ফাইল config.session.php এ, ভেরিয়েবলটিকে মিথ্যাতে নিরাপদ করুন

'secure' => env('SESSION_SECURE_COOKIE', false),

0

আমার একাধিক সাবডোমেন এবং অ্যাপ্লিকেশনটি ছিল সেশন কুকিগুলির মধ্যে সমস্যা। কুকিজ সাফ করা আমার সমস্যার সমাধান করেছে।

এছাড়াও, সেট করার চেষ্টা SESSION_DOMAINমধ্যে .env ফাইল। আপনি ব্রাউজ করছেন ঠিক সাবডোমেন ব্যবহার করুন।


0

আপনার ওয়েব সার্ভারে সঠিক সিস্টেম সময় রয়েছে তা নিশ্চিত হন। আমার ক্ষেত্রে, ভ্যাজ্রেন্ট মেশিনটি ভবিষ্যতে ছিল (জানুয়ারী 26 14:08:26 ইউটিসি 2226) অবশ্যই আমার ব্রাউজারের সেশন কুকির সময়টি প্রায় 200+ বছর পূর্বে শেষ হয়েছিল।



0

আমি এই ত্রুটিটি এড়ানোর জন্য দুটি সমাধান বের করেছি 1) সংজ্ঞায়িত রুট থেকে সিএসআরএফ টোকেন পরিদর্শনকে অক্ষম করে - সম্ভাব্য অক্ষরে অক্ষরে = ['/ আপনাররউটি'] যুক্ত করে সুরক্ষিত যোগ করে। 2) কেবল মন্তব্য করুন \ অ্যাপ \ এইচটিটিপি \ মিডলওয়্যার \ ভেরিফাইসিএসআরফ টোকেন :: কার্নেলের সুরক্ষিত মিডলওয়্যার গোষ্ঠীতে শ্রেণি রেখা


0

আমার একই সমস্যা ছিল তবে সমস্যাটি ফ্রেমওয়ার্কে নয় ব্রাউজারে। আমি জানি না তবে গুগল ক্রোম আমার ক্ষেত্রে কুকিগুলি স্বয়ংক্রিয়ভাবে অবরুদ্ধ করে। অনুমোদিত কুকিগুলির পরে সমস্যাটি সমাধান করা হয়েছিল।


0

সংক্ষিপ্ত উত্তর

জন্য রুট এন্ট্রি যোগ করুন registerমধ্যেapp/Http/Middleware/VerifyCsrfToken.php

protected $except = [
        '/routeTo/register'
    ];

এবং কমান্ড দিয়ে ক্যাশে এবং ক্যাশে রুট সাফ করুন:

php artisan cache:clear && php artisan route:clear

বিস্তারিত

প্রতিবার আপনি যখন লারাভেল সাইটে অ্যাক্সেস করবেন তখন সেশন শুরু না করা হলেও একটি টোকেন তৈরি করা হয়। তারপরে, প্রতিটি অনুরোধে, এই টোকেনটি (কুকিজগুলিতে সঞ্চিত) তার সমাপ্তির সময়টির বিরুদ্ধে বৈধ হয়ে যাবে, যা SESSION_LIFETIMEক্ষেত্রটিতে সেট করা হবেconfig/session.php ফাইলের ।

যদি আপনি মেয়াদোত্তীর্ণ সময়ের চেয়ে বেশি সময় ধরে সাইটটি খোলা রাখেন এবং একটি অনুরোধ করার চেষ্টা করেন তবে এই টোকেনটি মূল্যায়ন করা হবে এবং মেয়াদোত্তীর্ণ ত্রুটি ফিরে আসবে। সুতরাং, যাচাইযোগ্য ব্যবহারকারীদের ফাংশনগুলির বাইরে (যেমন নিবন্ধক বা লগইন) ফর্মগুলিতে এই বৈধতাটি এড়াতে আপনি প্রবেশপথ বাদে যোগ করতে পারেন app/Http/Middleware/VerifyCsrfToken.php


1
যদি পৃষ্ঠাটি ব্যবহারকারীর ইনপুট প্রসেস করে তবে তা সিএসআরএফ চেকের মধ্য দিয়ে যাওয়া উচিত ।
সৌগটা বোস

@ সৌগাটাবোস সত্যই, সে ক্ষেত্রে আমি মনে করি গুগল রেক্যাপচা
জে.সি. গ্রাস

0

অনেক সময় এর ঘটনা ঘটছে কারণ আপনি ব্যাক ডেটে প্রকল্পটি পরীক্ষা করছেন


0

সমাধান:

ছদ্মবেশে নতুন ট্যাব ব্যবহার করুন এবং এটি আবার পরীক্ষা করুন।

কারণ:

আমার ক্ষেত্রে অন্য একজন ব্যবহারকারী আমার প্রশাসক প্যানেলে লগ ইন করেছেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.