نصب و راه اندازی apache روی Centos

آپاچیدر این نوشته می خواهیم روش نصب و راه اندازی وب سرور Apache را روی سرور لینوکس با سیستم عامل Centos5 بررسی کنیم.

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

علاوه بر httpd وب سرورهای تحت لینوکس دیگری هم وجود دارند که لیست پرطرفدارترین آن ها در ادامه آمده است:

  1. Litespeed
  2. Lighttpd
  3. Nginx

هر کدام از وب سرورهای بالا مزایا و معایب خاص خودشان را دارند و البته نقطه ی قوت همه ی آن ها نسبت به httpd در تعداد کاربر آنلاین در آن هاست. به طور کلی httpd می تواند حداکثر به ۱۰۰۰۰کاربر به صورت همزمان سرویس بدهد. سایر وب سرورهای مورد اشاره مشکل محدودیت تعداد کاربر را ندارند. با این وجود عمدتا httpd به عنوان استاندارد لینوکس شناخته می شود و اسکریپت های تحت وب بهترین همخوانی را با httpd دارند. از همین رو و با توجه به اینکه هجوم همزمان بیش از ۱۰۰۰۰کاربر به صورت همزمان تنها برای تعداد کمی از سایت های پربازدید اتفاق می افتد می توان گفت httpd برای شروع بهترین گزینه است. (بیشتر…)


پاسخ به یک سوال در مورد ابزارک و سایدبار در وردپرس

سوال در مورد وردپرسحدود هفت ماه پیش مطلبی در مورد کارکردن با سایدبار در وردپرس منتشر کردم با عنوان «کارکردن با سایدبار در وردپرس» که به شرح چگونگی تعریف و استفاده از سابدبارهای دینامیک در وردپرس می پرداخت. در نگارش نوشته ی مورد اشاره تمام سعی خود را معطوف به این نکته کردم که همه ی نکاتی که در خلال تجربه های کاری در مورد سایدبار در وردپرس آموخته بودم را در قالبی مدون درآورده و به شکل یک راهنمای جامع منتشر کنم. به تازگی سوال یکی از دوستان در مورد نوشته ی مزبور مرا متوجه این نکته کرد که راهنمای کارکردن با سایدبار در وردپرس مثال عملی و کاربردی ندارد.

به همین منظور صورت اصلاح شده ی سوال این دوست گرامی را به همراه پاسخ آن به عنوان مثال عملی کارکردن با سایدبار در وردپرس در ادامه حضور مخاطبان گرامی «روزهای خط خطی» عرضه می دارم؛ با این امید که روشنگر باشد.

سوال: چطور می توانیم با استفاده از تعریف سایدبار در وردپرس به ابزارک های موجود در سایدبار سایت استایل های متفاوتی بدهیم؟

برای پاسخ به این سوال در حالت کلی فرض می کنیم که قالب سایت ما دارای یک فایل sidebar.php می باشد که سایدبارهای ما بناست در درون آن فراخوانی شوند. می خواهیم ابزارک های درون سایدبار استایل های متفاوتی داشته باشند. به عنوان مثال عنوان یک ابزارک خاص را با رنگ سبز و عنوان سایر ابزارک ها را با رنگ مشکی نمایش دهیم.

(بیشتر…)


SQL Injection چیست؟

برای شروع بد نیست بدانیم SQL Injection چیست و یک مثال ساده ی آن را بررسی کنیم.

SQL Injection عبارتست از وارد کردن اطلاعات مخرب در ساختار دستورات SQL که ممکن است باعث آسیب جدی به ساختار و اطلاعات پایگاه داده ی برنامه شود.

SQL Injection

 رویکرد ما در بررسی SQL Injection بررسی کدهای نوشته شده به زبان php است و به همین خاطر مثال ها و راهکارهای ارائه شده همگی منطبق با زبان php می باشند. با این وجود می توان گفت مثال ها خیلی متکی به زبان نیستند و با اندکی تغییر قابل تعمیم به هر زبان برنامه نویسی دیگری که به نوعی با پایگاه های داده از خانواده ی SQL در ارتباط است می باشد.

SQL Injection معمولا از طریق دستکاری ورودی فرم های HTML پیاده می شود ولی راه های دیگری نیز برای ورود دستورات مخرب SQL به برنامه های کاربردی تحت وب وجود دارد. به عنوان شروع مثال یک فرم ورود به بخش مدیریت یک وب سایت نوشته شده به زبان php را بررسی می کنیم.

...
$username = $_POST['username'];
$password = $_POST['password'];
$sql = "SELECT * FROM users WHERE username='$username'
AND password = '$password'";
...

کد بالا یک مثال ساده با امنیت بسیار ضعیف است و ممکن است به نظر غیر ممکن برسد که کسی از چنین کدی استفاده کند. با این وجود یک جستجوی ساده در گوگل انبوهی از سایت ها و برنامه های کاربردی تحت وب را نشان می دهد که همگی به همین سادگی در معرض  خطر جدی حملات SQL Injection قرار دارند. (بیشتر…)