فارس محمد11 نشر 11 فبراير أرسل تقرير نشر 11 فبراير (معدل) السلام عليكم ورحمة الله وبركاته لدي مشكله في مشروع لارافل واريد مساعدتكم كيف اعالج هذه مشكله. CSRF token mismatch وفي middleware VerifyCsrfToken في داله handle $this->except في هذه array وضعت كل routes الي تعرض بيانات في datatable رغم وضعت في صفحه الرئيسية <meta name="csrf-token" content="{{ csrf_token() }}"> وهذه في ملف jquery $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); وهذه مع ajax headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') تم التعديل في 11 فبراير بواسطة فارس سعيد محمد 1 اقتباس
1 Taha Khaled2 نشر 11 فبراير أرسل تقرير نشر 11 فبراير عندما تعمل علي local host , قد تواجه مشكلة مع الاتصالات غير الآمنة (HTTP). المشكلة تنحصر في أن متصفح Chrome يمنع إرسال بيانات حساسة عبر اتصالات غير آمنة. الفكرة الأساسية هنا هي أن عندما يكون الاتصال غير آمن باستخدام بروتوكول HTTP، يمكن للمتصفح منع إرسال بيانات حساسة مثل كلمات المرور أو المعلومات الشخصية. ومع ذلك، عندما يتم رفع الموقع إلى الخادم باستخدام الاتصال المؤمّن (HTTPS)، فإن هذه المشكلة تحل بسبب الطريقة التي يتم بها تشفير الاتصال وتأمينه من خلال شهادات SSL/TLS حل هذه المكشله اذا كنت لا تريد انت ظهر معاك يجب وضع كومنت علي هذه الكود \App\Http\Middleware\VerifyCsrfToken::class web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, // \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\HandleInertiaRequests::class, \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class, ], ستجده داخل هذه المسار App/ http/kernel..php وعند الرفع علي الاستضافه يجب حذفه و الافضل لمنع حدوث هذه المشاكل ان تكتب داخل كل form هذه الكود {{ csrf_token() }} مثال <form method="POST" action="/submit"> {{ csrf_token() }} <div class="mb-3"> <label for="name" class="form-label">الاسم</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="mb-3"> <label for="email" class="form-label">البريد الإلكتروني</label> <input type="email" class="form-control" id="email" name="email"> </div> <button type="submit" class="btn btn-primary">إرسال</button> </form> في هذا المثال، تم استخدام @csrf داخل النموذج لتضمين رمز الرمز الأمني CSRF. عندما يتم عرض الصفحة، سيقوم Laravel تلقائياً بتوليد رمز CSRF وإضافته إلى النموذج كحقل مخفي. عندما يتم إرسال النموذج، سيقوم Laravel بفحص رمز CSRF والتأكد من أنه متطابق مع القيمة الموجودة في الجلسة، وإلا فإنه سيرفض الطلب. 1 اقتباس
0 محمد عاطف17 نشر 11 فبراير أرسل تقرير نشر 11 فبراير وعليكم السلام ورحمة الله وبركاته. إن ال csrf token هو token مخصص للعنواين التى تقوم باضافة او تعديل او حذف بيانات (POST,PUT,PATCH,DELETE) لكن العناوين الخاصة باحضار الصفحات او البيانات (GET) لا تحتاج الى csrf token . حيث أن ال csrf token هو مخصص للتاكد من الشخص الذى قام بارسال هذا الطلب هو من على موقعك وليس من اى مكان اخر للحفاظ على امان البيانات . لذلك يجب عليك ان تجعل كل الroutes الخاصة بال datatable هى من نوع GET وليس POST. وهل يمكنك ارسال ال route الخاص بال datatable وايضا كود ال ajax كاملا 1 اقتباس
0 فارس محمد11 نشر 11 فبراير الكاتب أرسل تقرير نشر 11 فبراير بتاريخ 1 ساعة قال Taha Khalid: عندما تعمل علي local host , قد تواجه مشكلة مع الاتصالات غير الآمنة (HTTP). المشكلة تنحصر في أن متصفح Chrome يمنع إرسال بيانات حساسة عبر اتصالات غير آمنة. الفكرة الأساسية هنا هي أن عندما يكون الاتصال غير آمن باستخدام بروتوكول HTTP، يمكن للمتصفح منع إرسال بيانات حساسة مثل كلمات المرور أو المعلومات الشخصية. ومع ذلك، عندما يتم رفع الموقع إلى الخادم باستخدام الاتصال المؤمّن (HTTPS)، فإن هذه المشكلة تحل بسبب الطريقة التي يتم بها تشفير الاتصال وتأمينه من خلال شهادات SSL/TLS حل هذه المكشله اذا كنت لا تريد انت ظهر معاك يجب وضع كومنت علي هذه الكود \App\Http\Middleware\VerifyCsrfToken::class web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, // \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\HandleInertiaRequests::class, \Illuminate\Http\Middleware\AddLinkHeadersForPreloadedAssets::class, ], ستجده داخل هذه المسار App/ http/kernel..php وعند الرفع علي الاستضافه يجب حذفه و الافضل لمنع حدوث هذه المشاكل ان تكتب داخل كل form هذه الكود {{ csrf_token() }} مثال <form method="POST" action="/submit"> {{ csrf_token() }} <div class="mb-3"> <label for="name" class="form-label">الاسم</label> <input type="text" class="form-control" id="name" name="name"> </div> <div class="mb-3"> <label for="email" class="form-label">البريد الإلكتروني</label> <input type="email" class="form-control" id="email" name="email"> </div> <button type="submit" class="btn btn-primary">إرسال</button> </form> في هذا المثال، تم استخدام @csrf داخل النموذج لتضمين رمز الرمز الأمني CSRF. عندما يتم عرض الصفحة، سيقوم Laravel تلقائياً بتوليد رمز CSRF وإضافته إلى النموذج كحقل مخفي. عندما يتم إرسال النموذج، سيقوم Laravel بفحص رمز CSRF والتأكد من أنه متطابق مع القيمة الموجودة في الجلسة، وإلا فإنه سيرفض الطلب. المشكله حلت عندما وضعت كومنت ولاكن هل هذه لن يوؤثر علي الامان 1 اقتباس
1 Taha Khaled2 نشر 11 فبراير أرسل تقرير نشر 11 فبراير بتاريخ 1 دقيقة مضت قال فارس سعيد محمد: المشكله حلت عندما وضعت كومنت ولاكن هل هذه لن يوؤثر علي الامان سيؤثر بطبع ولاكن كما ذكرت عند الرفع علي السيرفر يجب حذف الكومنت من الكود وسيعمل طبيعي جدا او اتباع الخطوات التي ذكرتها لك 1 اقتباس
0 فارس محمد11 نشر 11 فبراير الكاتب أرسل تقرير نشر 11 فبراير بتاريخ 1 دقيقة مضت قال Taha Khalid: سيؤثر بطبع ولاكن كما ذكرت عند الرفع علي السيرفر يجب حذف الكومنت من الكود وسيعمل طبيعي جدا او اتباع الخطوات التي ذكرتها لك شكرا لك اقتباس
السؤال
فارس محمد11
السلام عليكم ورحمة الله وبركاته لدي مشكله في مشروع لارافل واريد مساعدتكم
كيف اعالج هذه مشكله. CSRF token mismatch
وفي middleware VerifyCsrfToken في داله handle
$this->except
في هذه array وضعت كل routes الي تعرض بيانات في datatable
رغم وضعت في صفحه الرئيسية
<meta name="csrf-token" content="{{ csrf_token() }}">
وهذه في ملف jquery
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
وهذه مع ajax
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
تم التعديل في بواسطة فارس سعيد محمد5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.