تالار گفتمان nCIS.ir

نسخه‌ی کامل: CSRF
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
میخواستم ببینم کار این چی هست
و چرا ما this->enableCsrfValidation = false
کردیم
در ویوئوی آموزشی آمده بود نباید کلش false بشه و فقط یک قسمتش باید false بشه ولی ما چون وقت نداریم کلش را false قرار میدیم
حالا اینجا میشه توضیح بدید نحوه کارایی اش رو و مکانیزم عملی اش رو ؟
ممنون
کارش جلوگیری از حملات CSRF هست. علت اینکه توی آموزش ما غیرفعالش کردیم اینه که میخواستیم از درگاه بانکی استفاده کنیم و اونجا نمیخواستیم CSRF رو چک کنیم. البته این موضوع فقط پاک کردن صورت مسئله بوده و راه اصولی نیست. راه مناسب اینه که توی کنترلر موردنظر بیایم توی متد beforeAction درصورتی که id اکشن درخواستی برابر با اکشن پرداخت یا callBack بود، مقدار $this->enableCsrfValidation رو false کنیم یا اینکه توی اون کنترلر (که مربوط به پرداخت هست) یه فیلد public به اسم enableCsrfValidation$ با مقدار false بسازیم تا توی تمام اکشنهای همون کنترلر غیرفعال بشه نه توی تمام کنترلرها و اکشنهای دیگه.