• 3.1.9
  • کامل شده
  • منقضی شده
این داکیومنت از طرف توسعه‌دهنده ساپورت نمی‌شود، جدیدترین ورژن داکیومنت بزودی ترجمه خواهد شد.

CAPTCHA Helper برای ساخت تصویر و عبارت امنیتی استفاده می‌شود تا ارسال خودکار فرم‌ها دشوارتر شود. این Helper به GD و قابلیت نوشتن در پوشه تصویر نیاز دارد. داده‌های تولیدشده باید در Session یا محل امن دیگری نگهداری شوند تا هنگام ارسال فرم قابل مقایسه باشند.

کاربرد و توابع اصلی

تابع create_captcha() آرایه‌ای شامل نام فایل، مسیر، زمان ایجاد و کلمه تولیدشده برمی‌گرداند. پارامترهای اصلی شامل مسیر ذخیره، URL عمومی تصویر، طول عبارت، ابعاد و فونت هستند. پس از نمایش تصویر، مقدار صحیح را در Session نگه دارید و پس از اعتبارسنجی پاک کنید.

نمونه استفاده

 $this->load->helper('captcha');
 $vals = array(
   'word' => '', 'img_path' => FCPATH . 'captcha/',
   'img_url' => base_url('captcha/'), 'img_width' => 180,
   'img_height' => 50, 'expiration' => 7200
 );
 $captcha = create_captcha($vals);
 $this->session->set_userdata('captcha_word', $captcha['word']);

نکته مهم

ورودی را اعتبارسنجی کنید و خروجی را متناسب با محل نمایش Escape کنید. این Helper جایگزین کنترل دسترسی و سیاست امنیتی برنامه نیست.

مطالعه مرتبط

برای ادامه مطالعه، کوئری، SQL Injection را ببینید.

توابع CAPTCHA Helper

متد یا مفهومکاربرد
create_captcha($data)ساخت تصویر و متن CAPTCHA.
wordعبارت تولیدشده.
img_path و img_urlمسیر فایل و URL تصویر.
img_width و img_heightابعاد تصویر.
expirationزمان نگهداری فایل.
font_pathمسیر فونت در صورت نیاز.

نکات استفاده در پروژه

Helperها معمولاً وضعیت داخلی نگه نمی‌دارند و برای تبدیل یا تولید مقدارهای کوچک مناسب‌اند. آن‌ها را فقط در Controller یا فایل‌های View بارگذاری نکنید، اگر در چند بخش برنامه استفاده می‌شوند می‌توانید در تنظیمات Autoload قرار دهید. در عین حال، بارگذاری همه Helperها به‌صورت سراسری ضرورتی ندارد و بهتر است وابستگی هر بخش روشن بماند.

در زمان استفاده، ورودی را از نظر نوع و محدوده بررسی کنید، خروجی HTML را متناسب با محل نمایش Escape کنید و مسیر فایل را از داده خام کاربر نسازید. اگر تابعی به دیتابیس، شبکه یا وضعیت Session وابسته است، آن رفتار دیگر یک Helper ساده نیست و بهتر است در Service یا Library مستقل قرار بگیرد.

در بازبینی کد، ترتیب و نتیجه متدهای create_captcha($data)، word، img_path و img_url، img_width و img_height را بررسی کنید. نام متد به‌تنهایی تضمین نمی‌کند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.

سایر پست های داکیومنت