مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

حفاظت CSRF در Laravel لاراول به زبان ساده


به حمله هایی که از طریق درخواست‌های متقابل جعلی، به سایت صورت می‌گیرد، CSRF گفته می‌شود. CSRF کوتاه شده عبارت cross-site request forgery است. حملات CSRF فعالیت های غیر مجازی است که کاربرانِ معتبرِ سیستم (authenticated users) انجام می دهند.به همین ترتیب، بسیاری از برنامه های کاربردی وب، مستعد ابتلا به این حملات هستند.

 

 

Laravel، محافظت دربرابر CSRF را به روش زیر ارائه می دهد:

  Laravel شامل یک plugin یا افزونه CSRF ساخته شده است که برای هر session فعالِ کاربر، نشانه یا token ایجاد می کند. این tokenها تأیید می کنند که عملیات یا درخواست ها توسط کاربرِ معتبر (authenticated user) ارسال شده اند یا خیر.

پیاده سازی

پیاده سازی حفاظت CSRF در Laravel در این بخش به طور دقیق مورد بحث قرار می گیرد.

■ CSRF در فرم های HTML به کار برده شده در برنامه های وب ، پیاده سازی می شوند. شما هر زمانی که یک فرم html در برنامه خود تعریف می کنید، باید یک فیلدِ پنهان (hidden validated CSRF token) در فرم قراربدهید تا middleware مربوط به حفاظت CSRF بتواند درخواست کاربر را اعتبارسنجی کند.

کد زیر موید این مطلب است.

<form method = "POST" action="/profile">

   {{ csrf_field() }}

   ...

</form>

■ در هنگام ایجاد برنامه های JavaScript ، کتابخانه های HTTP جاوا اسکریپت ، برای هر درخواست خروجی، token حفاظت CSRF را پیوست می نماید.

■ فایلی که resources/assets/js/bootstrap.js نام دارد بطورپیشفرض، مقدار تگ های متا csrf-token را با کتابخانه Axios HTTP  ذخیره می کند.

فرم بدون CSRF token

قطعه کدهای زیر را در نظر بگیرید.

ان کد ، یک form را نشان می دهد، که دو پارامتر input می گیرد: email و message.

<form>
   <label> Email </label>
      <input type = "text" name = "email"/>
      <br/>
   <label> Message </label> <input type="text" name = "message"/>
   <input type = ”submit” name = ”submitButton” value = ”submit”>
</form>

نتیجه کد بالا را در تصویر زیر می توانید مشاهده کنید:

فرم نشان داده شده در بالا، هر اطلاعاتِ ورودی، از یک کاربرِ مجاز (authorized user) را می پذیرد. این ممکن است، برنامه وب را مستعد حملات مختلف کند. لطفا توجه داشته باشید که دکمه ارسال (submit button) شامل تابع یا functionی در بخش controller است.

تابع postContact در controller برای نمایش تمام request ها استفاده می شود.

public function postContact(Request $request){
   return $request-> all();
}

توجه داشته باشید که این فرم هیچ token یا نشانه CSRF را شامل نمی شود، بنابراین اطلاعات حساس به اشتراک گذاشته شده، مانند پارامترهای ورودی ، مستعد ابتلا به حملات مختلف هستند.

 

فرم با CSRF token

همانطور که در کدهای زیر می بینید فرم را دوباره طراحی کردیم ولی این بار با استفاده از csrf-token .

<form method = ”post” >
   {{ csrf_field() }}
   <label> Email </label>
   <input type = "text" name = "email"/>
   <br/>
   <label> Message </label>
   <input type = "text" name = "message"/>
   <input type = ”submit” name = ”submitButton” value = ”submit”>
</form>

خروجی به دست آمده JSON را با یک token به صورت زیر نشان می دهد

{
   "token": "ghfleifxDSUYEW9WE67877CXNVFJKL",
   "name": "TutorialsPoint",
   "email": "contact@tutorialspoint.com"
}

این نشانه CSRF-Token ایجاد شده در کلیک روی دکمه  submit button  است.

فصلِ: 28 , تعداد قسمت ها: 253 , سطح: صفر تا صد

این فصل در یک نگاه:

آشنایی با امکانات جدید لاراول ۷…

برخی از سرفصل های این پکیج آموزشی :   لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…
فصلِ: 1 , تعداد قسمت ها: 2 , سطح: متوسط

این فصل در یک نگاه:

بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…

  وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ   اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…
فصلِ: 4 , تعداد قسمت ها: 368 , سطح: صفر تا صد

این فصل در یک نگاه:

مباحث تکمیلی فریم ورک لاراول…

فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…
فصلِ: 1 , تعداد قسمت ها: 155 , سطح: صفر تا صد

این فصل در یک نگاه:

مباحث مقدماتی فریم ورک react.js…

توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js  و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید