این مطلب آزمایشی است
یک میزبان فضای وب شایسته و واجد شرایط را انتخاب کنید - مهمترین تصمیم
خطرات میزبانی اشتراکی (Shared Server)
اگر شما بودجه کافی برای هزینه در سایت خود ندارید، یا سایت شما دارای دادهها و محتوای بسیار سری و محرمانه نمیباشد، شما میتوانید از میزبانی اشتراکی یا سرورهای اشتراکی استفاده کنید، اما حتما بدانید که شما در معرض خطرات غیرقابل اجتباب آن قرار دارید. بسیاری از نکتهها و توضیحاتی که در زیر میآیند در رابطه و مربوط با امنیت بر روی همین میزبانیهای اشتراکی میباشند.
از پیکربندی و تنظیمات سرسری خودداری کنید
تنها برای این که چشمتان را باز کنید این گزارش را بخوانید، این گزارش درباره هزاران سایتی است که به گوگل اجازه ایندکس کردن نتایج phpinfo() را میدهد. شما چنین اشتباهی را در سایت خود مرتکب نشوید! این گزارش شامل آمار هشداردهندهای درباره درصد سایتهایی است که از تنظیمات نادرست مانند روشن بودن register_globals یا نداشتن open_basedir استفاده کردهاند. درضمن اگر php.ini و register_globals برای شما کدهای ناآشنایی هستند، بدین معناست که شما آمادگی لازم برای مدیریت امنیت سایت خود را ندارید.
پیکربندی Apache (آپاچی)- استفاده از Apache .htaccess
اقدامات استفاده typical را با فایلهای local Apache .htaccess بلوکه کنید. این گزینه بر روی همه سرورها فعال نیست. با میزبان خود بررسی کنید که آیا شما ممکن است دچار این مشکلات شوید یا خیر. با استفاده از .htaccess شما میتوانید گذارواژه محافظی بر روی دایرکتوریهای حساس، مانند مدیریت (administrator) قرار دهید، دسترسی دایرکتوریهای حساس را بر اساس IP ببندید، و بسیاری پیکربندیهای دیگر بر روی سرور خود در جهت افزایش امنیت با تغییر PHP4 به PHP5 اعمال کنید.
استفاده از Apache mod_security
Apache mod_security و فیلترهای mod_rewrite برای جلوگیری از حملات PHP با دقت تنظیم کنید. Google search for mod_security و Google search for mod_rewrite را مشاهده کنید. (توجه داشته باشید: اینها روشهای پیشرفتهای هستند که نیازمند توافقنامه یا هماهنگی با پشتیبان فضای وب شما میباشد، چنین گزینههایی به صورت جداگانه بر روی سرورهای اشتراکی قابل تنظیم نمیباشند.)
پیکربندی MySQL - پایگاه داده را ایمن کنید
از تنظیم حسابهای MySQL در حالت دسترسی محدود اطمینان حاصل کنید. نصب اولیه MySQL ایمن نیست و نیازمند پیکربندی دقیقتری است. (راهنماهای MySQL http://dev.mysql.com/doc/ را بخوانید) توجه داشته باشید که این گزینه تنها برای مدیریت سرورهایی که شما دارنده آن هستید، نظیر سرورهای Dedicated اعمال میگردد.
پیکربندی PHP - نحوه کار PHP را دریابید
نحوه کار با فایل php.ini و چگونگی تنظیمات کنترل شده PHP را بیاموزید. فهرست رسمی دستورالعملهای php.ini را در http://www.php.net مطالعه کنید.
استفاده از PHP5
در حال حاضر PHP5 و PHP4هر دو پشتیبانی میگردند، و هر دو بر روی سرورها دردسترس میباشند. پیش از آن که PHP4 منسوخ شود، اسکریپهای دلخواه خود را به PHP5 ارتقا دهید. نگران کدهای هسته جوملا نباشید، تمامی نسخههای موجود با PHP5 سازگار میباشند. ( مشاهده خبر PHP)
استفاده از فایلهای محلی php.ini
در سرورهای اشتراکی شما نمیتوانید فایل php.ini اصلی را ویرایش کنید، اما شما قادر به افزودن فایلهای محلی php.ini دلخواه هستید. اگر چنین قصدی داشته باشید، شما باید رونوشت فایلهای php.ini را در تمام زیردایرکتوریهایی که نیازمند تنظیمات سفارشی هست، ایجاد کنید. خوشبختانه تعدادی از اسکریپتها موجودند که میتوانند این کار دشوار را برای شما انجام دهند!
چند نکته مهم هست که باید بهیاد داشته باشید.
-
فایلهای محلی php.ini تنها در شرایطی که در سرور مورد استفاده آنها تنظیم شود، قابل استفاده میباشند. این شامل یک فایل php.ini در دایرکتوری http_root شما میباشد. شما میتوانید بررسی کنید که این فایل بر روی سایت شما توسط تنظیمات مستقیم فایل php.ini تاثیرگذار هست یا خیر.
-
فایلهای محلی php.ini تنها بر فایلهای .php تاثیر میگذارند که در همان دایرکتوری قرار دارند. این به آن معناست که به صورت طبیعی تنها دو دایرکتوری جوملا هستند که شما میتوانید فایل php.ini را در آن قرار دهید.
-
اگر شما در هر دایرکتوری یک فایل php.ini دارید، برخی از اسکریپتها احتمالا این کار را برای شما انجام دادهاند. اگر شما قصد آن را نداشتهاید، شما باید آنها را از شاخه اصلی خارج کنید، اما به طور منطقی شما باید نگران فایلهای php.ini در دایرکتورهای http_root و administrator باشید.
استفاده از PHP disable_functions
از disable_functions برای غیر فعالکردن توابع خطرناک PHP که در سایت شما موردنیاز نیستند، استفاده کنید. در زیر یک نمونه تنظیم برای یک سایت جوملا! است:
disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open
استفاده از PHP open_basedir
open_basedir باید فعال و به درستی تنظیم شده باشد. این تنظیمات فایلهایی را که میتوانند توسط PHP در یک دایرکتوری درختی خاص باز شوند را محدود میکند. این تنظیمات از روشن یا خاموش بودن حالت امن هیچ تاثیری نمیپذیرد.
open_basedir = /home/users/you/public_html
دربرخی از پیکربندیهای سیستم، حداقل با PHP 4.4.8 استفاده از slash برای محدود کردن دسترسی تنها به دایرکتوری مشخص شده ممکن است سبب اخطار JFolder::create: Infinite loop detected جوملا هنگام ذخیره پیکربندی کلی بخش مدیریت شود. این اخطار به سبب عدم موفقیتهای PHP file_exists() function ، به عنوان مثال هنگام بررسی وجود /home/user/public_html/joomla_demo و تنظیم open_basedir در /home/user/public_html/joomla_demo/ شود.
به علاوه اگر open_basedir تنظیم شده باشد، ممکن است نیاز به تنظیم پیکربندی PHP upload_tmp_dir در مسیری در حوزه open_basedir باشد یا به طور جایگزینی مسیر upload_tmp_dir path را بیفزاید به open_basedir با استفاده از مسیر مربوطه جداکننده برای سیستم میزبان.
open_basedir = /home/users/you/public_html:/tmp
PHP از دایرکتوری موقت سیستم هنگامی که upload_tmp_dir تنظیم نشده باشد استفاده میکند یا هنگامی که تنظیم شده باشد اما دایرکتوری موجود نباشد. بنابراین الزامی است که آن را به open_basedir برای جلوگیری از بارگذاری خطا در جوملا بیفزایید.
تنظیم magic_quotes_gpc
magic_quotes_gpc را آنگونه که مورد نیاز سایتتان است، تنظیم کنید. این تنظیم برای جوملا! 1.0 پیشنهاد میشود که در وضعیت روشن تنظیم شود تا از ضعف امکانات اضافی محافظت شود. اما امنترین روش این است که magic_quotes_gpc خاموش باشد تا در مقابل تمامی امکانات اضافی ضعیف و بیخاصیت محافظت شوید.
جوملا! 1.5 به طور کل از این تنظیم صرف نظر میکند و به طریق دیگری عمل میکند.
magic_quotes_gpc = 1
از PHP safe_mode استفاده نکنید
از استفادهی PHP safe_mode اجتناب کنید. این کار در سیستم معتبر است، اما یک راهحل ناقص برای مشکلات بسیار پیچیده است که باعث بروز برخی مشکلات امنیتی میشود. برای اطلاعات بیشتر درباره این موضوع سایت رسمی PHP را بخوانید.
safe_mode = 0
از PHP register_globals استفاده نکنید
register_globals خودکار متغیرها به طور حتم یکی از اشتباهترین تصمیمات برنامهنویسان و گسترشدهندگانِ PHP بود. این سند تعیین میکند که آیا EGPCS (Environment, GET, POST, Cookie, Server) به عنوان متغییرهای کلی ثبت شوند یا خیر و اینکه کجا باید سریعا برای تمام اسکریپتهای PHP در دسترس باشند و همچنین کجا باید به سادگی بر روی متغییر شما مجددا نوشته شوند، هنگامی که شما بیدقت هستید. خوشبختانه گسترشدهندگان PHP مدتی است متوجه این اشتباه خود شدهاند و این ویژگی را کمتر به کار میگیرند.
اگر سایت شما بر روی یک سرور اشتراکی با پشتیبان فضای وبی است که register_globals بر روی آن فعال است، شما واقعا باید نگران باشید. البته اگرچه شما میتوانید register_globals را غیر فعال کنید، اما همچنان این امر شما را در معرض آسیبپذیری در برابر حملات به سایت شما از طریق سرور قرار میدهد.
register_globals = 0
از PHP allow_url_fopen استفاده نکنید
از PHP allow_url_fopen استفاده نکنید. این گزینه URL-aware fopen wrapperها را فعال میکند. Wrapperهای پیشفرض برای کنترل فایلها با استفاده از ftp و یا پروتوکل http ایجاد شده اند، همچنین برخی از امکانات مانند zlib میتوانند wrapperهای اضافیای را ثبت کنند.
allow_url_fopen = 0
با مطالعه چک لیست های امنیتی جوملا در بالا و انجام دقیق تنظیمات, شما قادر به استفاده از یک سرور امن برای میزبانی جوملای سایت خود هستید, امیدواریم این مقاله نیز همانند دیگر مقالات جدید سایت جوملا فارسی (گروه نرم افزاری جوملا) بتواند به شما جهت استفاده لذت بخش از جوملا 1.5 کمک و یاری رساند.
در ضمن از تمامی دوستان خواهشمندیم نظرات خود را پیرامون این مقاله به صورت کامنت برای ما ارسال کنند تا تمامی کاربران سایت از نظرات یکدیگر آگاه شوند. |