View Full Version : دسترسی غیر مجاز به کنترلرها
sara.ghavam
دوشنبه 15 شهریور 1395, 15:48 عصر
سلام دوستان گلم
خسته نباشید
یک سوالی دارم، من توی کنترلرهام چند function دارم که در فانکشن index چک میکنم که لاگین کرده یا نه؟ (سایتی که من نوشتم از اول کار باید لاگین کنیم و به هیچ جای سایت بدون لایگن اجازه دسترسی نیست) اما بقیه فانکشن ها رو وقتی که بدون لاگین میزنم فانکشن اجرا میشه؛ چاره چیه؟ چطوری میتونم از این مشکل جلوگیری کنم با توجه به اینکه این موضوع برای امنیت خوب نیست
آیا باید توی همه فانکشن ها لاگین رو چک کنم؟
برای مدلها چیکار باید بکنم؟؟؟
numberone1
دوشنبه 15 شهریور 1395, 20:33 عصر
سلام
توی فولدر core یک فایل بساز به اسم MY_Controller داخلش یه کلاس به همین اسم که extend شده باشه از CI_Controller
یک فانکشن construct درست کن که parent::__construct و خط پایینش کد های لاگینت و بنویس
مثلا
if($this->auth->is_login())
echo 'user login';
else
echo 'not login';
توی کنترلر های برنامه کنترلر و extend کن از MY_Controller
توی همه کنترلر هایی به این شکل extend بشن چک کردن لاگین اتوماتیک انجام میشه
این آموزش همین کاری که گفتم توی manual خود codeigniter (https://codeigniter.com/user_guide/general/core_classes.html)
sara.ghavam
سه شنبه 16 شهریور 1395, 08:48 صبح
خدا خیرت بده مشکل حل شد
اما یه سوال برای مدل ها لازم نیست این کارو انجام بدم؟؟؟؟
sara.ghavam
سه شنبه 16 شهریور 1395, 09:18 صبح
یک مشکلی که دارم برای کنترلر لاگین هستش
تو این کنترلر چند تا فانکشن دارم که برای چک کردن لاگین هستش
اما خب اگر این کنترلر رو هم MY_Controller باشه دیگه اصلا اجرا نمیشه چون هنوز لاگین نکرده که بخواد اجرا بشه یا نشه
حالا برای این کنترلر چیکار باید بکنم که فانکشن هاش رو کسی نتونه جداگانه اجرا کنه الان فانکشن های لاگین رو میزنم جداگانه اجرا میشه
numberone1
چهارشنبه 17 شهریور 1395, 02:20 صبح
خدا خیرت بده مشکل حل شد
اما یه سوال برای مدل ها لازم نیست این کارو انجام بدم؟؟؟؟
خواهش میکنم :لبخندساده:
توی لینکی که گذاشتم لیست کلاس هایی که میتونی ایجاد کنی به همین شکل بود. برای مدل میتونی این کارو بکنی
برای روتر میشه
برای view میشه
و ....
numberone1
چهارشنبه 17 شهریور 1395, 02:26 صبح
یک مشکلی که دارم برای کنترلر لاگین هستش
تو این کنترلر چند تا فانکشن دارم که برای چک کردن لاگین هستش
اما خب اگر این کنترلر رو هم MY_Controller باشه دیگه اصلا اجرا نمیشه چون هنوز لاگین نکرده که بخواد اجرا بشه یا نشه
حالا برای این کنترلر چیکار باید بکنم که فانکشن هاش رو کسی نتونه جداگانه اجرا کنه الان فانکشن های لاگین رو میزنم جداگانه اجرا میشه
والا سوالت و درست متوجه نشدم ولی چند تا حدس میزنم
۱- میخوای فانکشن هات از طریق url اجرا نشه قبل از اسم فانکشن ـ بزار (underline) مثلا _myfunction
2-منظورت اینه که یه فانکشن هایی داری توی کنترلرت که برای اجرا شدنش لازمه لاگین انجام نشده باشه؟ میتونی از CI_CONTROLLER کلاس کنترلرتو extend کنی یا میتونی توی همون فایل MY_CONTROLLER یک کلاس دیگه زیر کلاس اول بنویسی مثلا به اسم MY_CONTROLLER2
اگر منظورت اینا نبود سوالت و متوجه نشدم
sara.ghavam
چهارشنبه 17 شهریور 1395, 09:28 صبح
سلام همون گزینه 1 منظورم بود که درست شد ممنونم
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.