مجوز دسترسی و عدم دسترسی به صفحات و فایل های پی اچ پی

webarts

Member
دوستان ممنون میشم راهنمایی بفرمایید:

مثلا یک CMS پی اچ پی داریم.

1) بعضی فایلهای php نباید مستقیم توسط هیچ یوزری اجرا شود
2) بعضی فایلهای php تنها توسط کاربران رجیستر شده که لاگین کردن باید قابل دسترسی باشد.

به Sission و cookie آشنایی دارم. منتها نمیدانم بهترین شیوه برای اینکه فایلهای مورد 1 و 2 را قابل دسترسی و غیر قابل دسترسی کنم چیست؟ میشه چند کد مثال بزنین؟
مرسی
 

phpweb

Active Member
برای این کار باید این کد رو در ایتدای هر اسکریپت قرار بدید:
PHP:
if($_SESSION['userid']){
// code
}
else{
//login
}
 

peyman136

کاربر متخصص مولتی مدیا بیلدر
استفاده از define و کنترل کردن اون با defined هم پیشنهاد میشه
 

webarts

Member
و برای اینکه یک فایل بطور کل دسترسی مستقیم نداشته باشه چکار باید بکنم؟
 

phpweb

Active Member
و برای اینکه یک فایل بطور کل دسترسی مستقیم نداشته باشه چکار باید بکنم؟
برای این کار با htaccess دسترسی به پوشه فایلها رو محدود می کنید.
بعد با استفاده از php چک می کنید که کاربر مجوز لازم رو داره یا نه. اگر داشت فایل رو نمایش می دید.

توجه کنید که چون نمی شه با استفاده از htaccess دسترسی php رو محدود کرد می تونید از این روش استفاده کنید.
 

webarts

Member
استفاده از define و کنترل کردن اون با defined هم پیشنهاد میشه

مثل اینکه این روش شما کاربردی تره. تو جوملا2.5 اول فایلهایی که کاربران نباید دسترسی داشته باشند نوشته:

PHP:
defined('_JEXEC') or die;

ممکنه کلا درباره مجوز با define توضیح بدین؟
 

phpweb

Active Member
ممکنه کلا درباره مجوز با define توضیح بدین؟
define اصلا قابلیت تعیین مجوز نداره.

احتمالا جوملا توی صفحاتی که باید اینکلود بشن و نباید بصورت مستقیم قابل دستیابی باشن از این روش استفاده کرده.
 

peyman136

کاربر متخصص مولتی مدیا بیلدر
مثل اینکه این روش شما کاربردی تره. تو جوملا2.5 اول فایلهایی که کاربران نباید دسترسی داشته باشند نوشته:
define اصلا قابلیت تعیین مجوز نداره.
احتمالا جوملا توی صفحاتی که باید اینکلود بشن و نباید بصورت مستقیم قابل دستیابی باشن از این روش استفاده کرده.
این موضوع کاملن درسته
این روش صرفن برای این هستش که کاربران نتون به صورت مستقیم به فایل هایی که اینکلود میشن دسترسی داشته باشن اما اگه مغییرتون بعد از تعیین هویت کاربر تعریف بشه اینطوری علاوه بر جلوگیری از دسترسی مسقیم جلوی کاربرایی که مجاز نیستن رو میگیرید
 

phpweb

Active Member
این روش صرفن برای این هستش که کاربران نتون به صورت مستقیم به فایل هایی که اینکلود میشن دسترسی داشته باشن اما اگه مغییرتون بعد از تعیین هویت کاربر تعریف بشه اینطوری علاوه بر جلوگیری از دسترسی مسقیم جلوی کاربرایی که مجاز نیستن رو میگیرید
برای اینکه جلوی دسترسی کاربرانی که لاگین نکردن رو بگیرن معمولا از سسشن ها استفاده می کنن تا بتونن توی همه اسکریپتها به سسشن دسترسی داشته باشن.

فرض کنید یه تعداد کاربر بخصوص مجوز دسترسی به اسکریپت رو داشته باشن، در این صورت باید آی دی هر کاربر رو توی سسشن ذخیره کنیم و قبل از اجرای اسکریپت چک کنیم که آی دی مورد نظر مجوز لازم رو داره یا نه.

برای چنین مواردی اصلا نمی شه از ثابت ها استفاده کرد.
 

جدیدترین ارسال ها

بالا