آموزش حفاظت CSRF در لاراول

3 سال پیش

آموزش حفاظت CSRF در لاراول

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش حفاظت CSRF در لاراول خواهیم پرداخت.

CSRF به حملات جعلی Cross Site به برنامه های وب اشاره دارد. حملات CSRF فعالیتهای غیرمجاز است که کاربران معتبر سیستم انجام می دهند. به این ترتیب ، بسیاری از برنامه های تحت وب مستعد این حملات هستند.

لاراول حفاظت CSRF را به روش زیر ارائه می دهد –

لاراول شامل یک افزونه CSRF داخلی است که برای هر جلسه کاربر فعال ، توکن تولید می کند. این نشانه ها تأیید می کند که عملیات یا درخواست ها توسط کاربر معتبر مربوطه ارسال می شود.

پیاده سازی حفاظت CSRF در لاراول

پیاده سازی حفاظت CSRF در لاراول در این قسمت به تفصیل مورد بحث قرار گرفته است. نکات زیر قبل از اقدام بیشتر در زمینه حفاظت از CSRF قابل توجه است –

CSRF در فرم های HTML اعلام شده در برنامه های وب پیاده سازی می شود. شما باید یک توکن CSRF معتبر مخفی در فرم قرار دهید ، به طوری که میان افزار محافظت از CSRF لاراول بتواند درخواست را تأیید کند. نحو زیر نشان داده شده است –

<form method = "POST" action="/profile">
   {{ csrf_field() }}
   ...
</form>

 

شما می توانید به راحتی برنامه های کاربردی جاوا اسکریپت را با استفاده از کتابخانه HTTP JavaScript بسازید، زیرا این شامل کد CSRF برای هر درخواست خروجی است.

فایل یعنی resources/assets/js/bootstrap.js تمام نشانه ها را برای برنامه های Laravel ثبت می کند و شامل متا تگ است که csrf-token را با کتابخانه Axios HTTP ذخیره می کند.

فرم بدون توکن CSRF

خطوط کد زیر را در نظر بگیرید. آنها فرمی را نشان می دهند که دو پارامتر را به عنوان ورودی می گیرد: ایمیل و پیام.

<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>

 

نتیجه کد بالا، فرم زیر است که کاربر نهایی می تواند آن را مشاهده کند –

Contact Form

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

لطفاً توجه داشته باشید که دکمه ارسال شامل قابلیت هایی در قسمت کنترل کننده است. تابع postContact در کنترلرهای مربوط به نماهای مرتبط استفاده می شود. در زیر نشان داده شده است –

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

 

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

فرم با توکن CSRF

خطوط زیر کد به شما نشان می دهد که فرم مجدداً با استفاده از نشانه های CSRF طراحی شده است-

<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": "ghfleifxDSUYEW9WE67877CXNVFJKL",
   "name": "TutorialsPoint",
   "email": "contact@tutorialspoint.com"
}

 

این نشان CSRF است که با کلیک روی دکمه ارسال ایجاد شده است.

 

منبع.

 

 

لیست جلسات قبل آموزش لاراول

  1. آموزش لاراول
  2. آموزش مقدماتی لاراول
  3. آموزش نصب لاراول
  4. آموزش ساختار برنامه در لاراول
  5. آموزش پیکربندی لاراول
  6. آموزش مسیریابی در لاراول
  7. آموزش Middleware در لاراول
  8. آموزش فضای نام در لاراول
  9. آموزش کنترل کننده ها در لاراول
  10. آموزش درخواست در لاراول
  11. آموزش کوکی در لاراول
  12. آموزش پاسخ در لاراول
  13. آموزش View در لاراول
  14. آموزش تمپلیت Blade در لاراول
  15. آموزش ریدایرکت کردن در لاراول
  16. آموزش کار با پایگاه داده در لاراول
  17. آموزش خطاها و ورود به سیستم در لاراول
  18. آموزش فرم ها در لاراول
  19. آموزش محلی سازی در لاراول
  20. آموزش اعتبار سنجی در لاراول
  21. آموزش بارگذاری فایل در لاراول
  22. آموزش ارسال ایمیل در لاراول
  23. آموزش ایجکس در لاراول
  24. آموزش مدیریت خطا در لاراول
  25. آموزش مدیریت رویداد در لاراول
  26. آموزش نما در لاراول
  27. آموزش قراردادها در لاراول
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه