راکت
حل شده

کار با سشن ها در mvc

10 پاسخ

سلام خستنه باشید
و ممنون از پاسخوگویی همیشگیتون
من چندتا صفحه به آدرس های زیر دارم
site.ir/admin/meus
site.ir/admin/posts
site.ir/admin/users
هر کدوم ممکنه متد ها و کنترل های جدایی داشته باشند
من باید هر کدوم از متدهاشون جداگانه دستور شرطی بنویسم و سشن چک کنم آیا راهی معقول برای انجام این کار نیست؟
و یه مسئله دیگه من برای راحتی در کدنویسی
بعضی تابع هارو که کار حذف و ویرایش رو دارند رو بصورت static تعریف میکنم میخام بپرسم تو امنیت مشکلی ایجاد نمیکنن؟

ثبت پرسش جدید

پاسخ‌ها

10
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

مراحلی که داری سشن رو چک می‌کنی داخل یه فایل مثلا bootstrap بگذار و در تمام صفحاتی که باید کاربر لاگین بشه ، اون فایل رو require کن. البته این کلیت کار هست و در مدیریت سشن ها بهتره دقت کامل داشته باشید.

کتابخونه های کامل و قدرتمندی برای PHP نوشته شده اند که به خوبی سشن ها رو مدیریت می‌کنند و مشکل امنیتی هم ندارند.. پیشنهاد من اینه که شما هم از این لایبرری‌ها استفاده کنید.

https://github.com/sobstel/sesshin
https://packagist.org/packages/slabphp/session-manager
https://packagist.org/packages/mikecbrant/php-ultimate-sessions

همچنین سشن منیجر لاراول هم جز گزینه‌های بسیار خوبه

علیرضا
علیرضا
@sep28

تخصص: فرانت اند وب

@ali.bayat
@Alimotreb
@hesammousavi
سپاسگذار میشم که این سوالمو جواب بدید

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

اول از همه که متد‌های استاتیک بدون نیاز به آبجکت قابل دسترسی هستند. و یک کلاس استاتیک (تنها با توابع استاتیک) مانع از استفاده از بسیاری از ویژگی های OOP مانند وراثت، پیاده سازی اینترفیس می‌شود.

در استفاده از این متد‌ها احتیاط کنید. برای مثال در خود لاراول یه سری هلپرهای مربوط به کلاس Str استاتیک هستند و از اونجایی هم که کارایی‌شون خیلی با امنیت کاری نداره مشکلی نیست

شاید پاسخ شما همین‌جا باشد

علیرضا
علیرضا
@sep28

تخصص: فرانت اند وب

@ali.bayat
سپاس از لطف و محبت شما میشه در مورد سشن ها هم یه راه حل برای بنده پیشنهاد بدید؟
من لاراول کارنمیکنم php mvc دارم کد میزنم

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

مشکلتون رو درباره سشن ها کمی دقیق تر توضیح بدید

علیرضا
علیرضا
@sep28

تخصص: فرانت اند وب

@ali.bayat
بزرگوار ببینید
من ده تا صفحه برای پنل مدیریت دارم
مثلا صفحه ی مدیریت منو ها .پست ها و.....
مثلا اینطوری:site.ir/admin/meus
و.......
خب من میخام کاربر مهمان نتونه به این ده تا صفحه دسترسی پیدا کنه و اگر ادرس واد کرد به صفحه ی لاگین منتقل شده
آیا من باید برای هر صفحه جداگانه چک کنم که سشن چک شده یانه یا راه حل بهتری هست ؟

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@paressep28

عمدتا تا جایی که من دیدم ، خیلی از صفهات رو زنجیره وار به هم require میکنند و سشن رو در require اول و جایی که اصلی هست فراخونی میکنن

اینکه بخوایید تو همه صفحات session_start() کنید هم خب راه جالبی نیست!

علیرضا
علیرضا
@sep28

تخصص: فرانت اند وب

@Alimotreb
خب ببینید من چطوری زنجیره وار وصل کنم ؟
خودمم دوست دارم همچین چیزی باشه ولی خب هر روتی در یه کنترلری یه متد اجرا میکنه
و اون مت یه ویو بر میگردونه)
ساختار پروژه من اینطوریه:

------
App->>>>
->Controller
->Model
->views
addroute.php
Core->>>>>
Route.php
Config.php
Controller.php
Model.php
Views.php
public->>>>>
->defult
->admin
.htaccess
index.php
-----------------

بعد من اینطوری میتونم به این روش عمل کنم ؟

$obj->addRoute('/',['user'=>'result@index','namespace'=>'defult',"session"=>false]);

مثلا قبل اینکه کنترلر صدا زده بشه . میگم اگه سشنش false بود چک کنه آیا کاربر سشنش برای ورود به این صفحه ست شده یانه
در غیر این صورت هدایت کنه به صفحه ی لاگین

علیرضا
علیرضا
@sep28

تخصص: فرانت اند وب

@ali.bayat
درود بر شما بسیار ممنونم
من میتونم بجای اینکار اینارو تو یه کلاس و یه تابع static چک کنم؟
البته بحث امنیت فقط به سشن ها هم ختم نمیشه
بعد این فایل .bootstrap.phpرو من بار ها دیدم برای چه کارهایی ازشون استفاده میشه؟
بعد من همچین مقاله ای برای افزایش امنیت سشن ها خوندم
https://netparadis.com/php-session-security/
اگه همه کارهارو انجام بدم میتونم در حد متوسط امنیت ورود و خروج رو تعیین کنم؟

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

برای کارهای بوت اولیه معمولا از bootstrap استفاده میشه
بله. در نهایت امنیت قابل دستیابیه

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام