- چهارشنبه 29 مهر 1405 ساعت 06:00
- 3.1.9
- کامل شده
- منقضی شده
Security Helper چند تابع عمومی برای پاکسازی و آمادهسازی داده ارائه میکند. در نسخه 3.1.9 تابع do_hash() عملاً به تابع Hash داخلی PHP متکی است و برای ساخت Hashهای عمومی استفاده میشود. این تابع را با Password Hashing اشتباه نگیرید.
کاربرد و توابع اصلی
xss_clean() در برخی نسخهها و پیکربندیها از Security Class استفاده میکند، strip_image_tags() تگهای تصویر را حذف میکند و encode_php_tags() تگهای PHP را به Entity تبدیل میکند. برای گذرواژه از password_hash() و password_verify() استفاده کنید.
نمونه استفاده
$this->load->helper('security');
$digest = do_hash($payload, 'sha256');
$text = strip_image_tags($userText);نکته مهم
ورودی را اعتبارسنجی کنید و خروجی را متناسب با محل نمایش Escape کنید. این Helper جایگزین کنترل دسترسی و سیاست امنیتی برنامه نیست.
مطالعه مرتبط
برای ادامه مطالعه، کوئری، SQL Injection را ببینید.
توابع Security Helper
| متد یا مفهوم | کاربرد |
|---|---|
do_hash($str, $type) | ساخت Hash عمومی با الگوریتم مشخص. |
strip_image_tags() | حذف تگهای تصویر از متن. |
encode_php_tags() | تبدیل تگهای PHP به Entity. |
xss_clean() | فیلتر XSS از طریق Security Class. |
password_hash() | روش مناسب Hash گذرواژه در PHP، خارج از این Helper. |
نکات استفاده در پروژه
Helperها معمولاً وضعیت داخلی نگه نمیدارند و برای تبدیل یا تولید مقدارهای کوچک مناسباند. آنها را فقط در Controller یا فایلهای View بارگذاری نکنید، اگر در چند بخش برنامه استفاده میشوند میتوانید در تنظیمات Autoload قرار دهید. در عین حال، بارگذاری همه Helperها بهصورت سراسری ضرورتی ندارد و بهتر است وابستگی هر بخش روشن بماند.
در زمان استفاده، ورودی را از نظر نوع و محدوده بررسی کنید، خروجی HTML را متناسب با محل نمایش Escape کنید و مسیر فایل را از داده خام کاربر نسازید. اگر تابعی به دیتابیس، شبکه یا وضعیت Session وابسته است، آن رفتار دیگر یک Helper ساده نیست و بهتر است در Service یا Library مستقل قرار بگیرد.
در بازبینی کد، ترتیب و نتیجه متدهای do_hash($str, $type)، strip_image_tags()، encode_php_tags()، xss_clean() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.