- چهارشنبه 29 مهر 1405 ساعت 01:00
- 3.1.9
- کامل شده
- منقضی شده
Path Helper برای تبدیل مسیر نسبی به مسیر واقعی سیستم فایل استفاده میشود. تابع اصلی set_realpath() مسیر را بررسی میکند و در صورت وجود، مسیر واقعی را برمیگرداند. این کار برای اطمینان از مسیر فایلهای داخلی برنامه مفید است.
کاربرد و توابع اصلی
پارامتر دوم مشخص میکند اگر مسیر وجود نداشت، خطا ایجاد شود یا مسیر بدون بررسی برگردد. در عملیات فایل، مسیر را به یک دایرکتوری مجاز محدود کنید و مراقب الگوی Path Traversal مانند ../ باشید.
نمونه استفاده
$this->load->helper('path');
$uploadPath = set_realpath(FCPATH . 'uploads/', TRUE);نکته مهم
ورودی را اعتبارسنجی کنید و خروجی را متناسب با محل نمایش Escape کنید. این Helper جایگزین کنترل دسترسی و سیاست امنیتی برنامه نیست.
مطالعه مرتبط
برای ادامه مطالعه، کوئری، SQL Injection را ببینید.
تابع Path Helper
| متد یا مفهوم | کاربرد |
|---|---|
set_realpath($path) | تبدیل مسیر به مسیر واقعی. |
check_existence | بررسی وجود مسیر. |
use_real_path | استفاده از realpath سیستمعامل. |
security | جلوگیری از Path Traversal و محدود کردن مسیر به دایرکتوری مجاز. |
نکات استفاده در پروژه
Helperها معمولاً وضعیت داخلی نگه نمیدارند و برای تبدیل یا تولید مقدارهای کوچک مناسباند. آنها را فقط در Controller یا فایلهای View بارگذاری نکنید، اگر در چند بخش برنامه استفاده میشوند میتوانید در تنظیمات Autoload قرار دهید. در عین حال، بارگذاری همه Helperها بهصورت سراسری ضرورتی ندارد و بهتر است وابستگی هر بخش روشن بماند.
در زمان استفاده، ورودی را از نظر نوع و محدوده بررسی کنید، خروجی HTML را متناسب با محل نمایش Escape کنید و مسیر فایل را از داده خام کاربر نسازید. اگر تابعی به دیتابیس، شبکه یا وضعیت Session وابسته است، آن رفتار دیگر یک Helper ساده نیست و بهتر است در Service یا Library مستقل قرار بگیرد.
در بازبینی کد، ترتیب و نتیجه متدهای set_realpath($path)، check_existence، use_real_path، security را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.