سلام خستنه باشید
و ممنون از پاسخوگویی همیشگیتون
من چندتا صفحه به آدرس های زیر دارم
site.ir/admin/meus
site.ir/admin/posts
site.ir/admin/users
هر کدوم ممکنه متد ها و کنترل های جدایی داشته باشند
من باید هر کدوم از متدهاشون جداگانه دستور شرطی بنویسم و سشن چک کنم آیا راهی معقول برای انجام این کار نیست؟
و یه مسئله دیگه من برای راحتی در کدنویسی
بعضی تابع هارو که کار حذف و ویرایش رو دارند رو بصورت static تعریف میکنم میخام بپرسم تو امنیت مشکلی ایجاد نمیکنن؟
مراحلی که داری سشن رو چک میکنی داخل یه فایل مثلا bootstrap بگذار و در تمام صفحاتی که باید کاربر لاگین بشه ، اون فایل رو require کن. البته این کلیت کار هست و در مدیریت سشن ها بهتره دقت کامل داشته باشید.
کتابخونه های کامل و قدرتمندی برای PHP نوشته شده اند که به خوبی سشن ها رو مدیریت میکنند و مشکل امنیتی هم ندارند.. پیشنهاد من اینه که شما هم از این لایبرریها استفاده کنید.
https://github.com/sobstel/sesshin
https://packagist.org/packages/slabphp/session-manager
https://packagist.org/packages/mikecbrant/php-ultimate-sessions
همچنین سشن منیجر لاراول هم جز گزینههای بسیار خوبه
اول از همه که متدهای استاتیک بدون نیاز به آبجکت قابل دسترسی هستند. و یک کلاس استاتیک (تنها با توابع استاتیک) مانع از استفاده از بسیاری از ویژگی های OOP مانند وراثت، پیاده سازی اینترفیس میشود.
در استفاده از این متدها احتیاط کنید. برای مثال در خود لاراول یه سری هلپرهای مربوط به کلاس Str استاتیک هستند و از اونجایی هم که کاراییشون خیلی با امنیت کاری نداره مشکلی نیست
@ali.bayat
سپاس از لطف و محبت شما میشه در مورد سشن ها هم یه راه حل برای بنده پیشنهاد بدید؟
من لاراول کارنمیکنم php mvc دارم کد میزنم
@ali.bayat
بزرگوار ببینید
من ده تا صفحه برای پنل مدیریت دارم
مثلا صفحه ی مدیریت منو ها .پست ها و.....
مثلا اینطوری:site.ir/admin/meus
و.......
خب من میخام کاربر مهمان نتونه به این ده تا صفحه دسترسی پیدا کنه و اگر ادرس واد کرد به صفحه ی لاگین منتقل شده
آیا من باید برای هر صفحه جداگانه چک کنم که سشن چک شده یانه یا راه حل بهتری هست ؟
سلام
@paressep28
عمدتا تا جایی که من دیدم ، خیلی از صفهات رو زنجیره وار به هم require میکنند و سشن رو در require اول و جایی که اصلی هست فراخونی میکنن
اینکه بخوایید تو همه صفحات session_start() کنید هم خب راه جالبی نیست!
@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 بود چک کنه آیا کاربر سشنش برای ورود به این صفحه ست شده یانه
در غیر این صورت هدایت کنه به صفحه ی لاگین
مراحلی که داری سشن رو چک میکنی داخل یه فایل مثلا bootstrap بگذار و در تمام صفحاتی که باید کاربر لاگین بشه ، اون فایل رو require کن. البته این کلیت کار هست و در مدیریت سشن ها بهتره دقت کامل داشته باشید.
کتابخونه های کامل و قدرتمندی برای PHP نوشته شده اند که به خوبی سشن ها رو مدیریت میکنند و مشکل امنیتی هم ندارند.. پیشنهاد من اینه که شما هم از این لایبرریها استفاده کنید.
https://github.com/sobstel/sesshin
https://packagist.org/packages/slabphp/session-manager
https://packagist.org/packages/mikecbrant/php-ultimate-sessions
همچنین سشن منیجر لاراول هم جز گزینههای بسیار خوبه
@ali.bayat
درود بر شما بسیار ممنونم
من میتونم بجای اینکار اینارو تو یه کلاس و یه تابع static چک کنم؟
البته بحث امنیت فقط به سشن ها هم ختم نمیشه
بعد این فایل .bootstrap.phpرو من بار ها دیدم برای چه کارهایی ازشون استفاده میشه؟
بعد من همچین مقاله ای برای افزایش امنیت سشن ها خوندم
https://netparadis.com/php-session-security/
اگه همه کارهارو انجام بدم میتونم در حد متوسط امنیت ورود و خروج رو تعیین کنم؟
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟