سشن ها (Sessions) در PHP

  • بوسیله: محسن شفیعی
  • در 1392/01/01 - 18:38
  • نظرات (4)
PHP – پی اچ پی

PHP – پی اچ پی

$_SESSION یک آرایه مخصوص برای ذخیره درخواست های کاربر در حین بازدید از سایت یا اپلیکیشن شما است. به این معنی که شما با استفاده از سشن ها میتوانید اطلاعات مورد نیاز خودتان را برای هر کاربر ذخیره کنید و در حین بازدید کاربر از سایتتان از آنها استفاده کنید.

برخلاف کوکی ها که در کامپیوتر کاربر ذخیره میشوند سشن ها در سرور ایجاد میشوند و امنیت خیلی بیشتری نسبت به کوکی ها دارند.

استفاده از سشن ها میتواند بسیار پیچیده و یا خیلی ساده باشد. یک مثال ساده و کاربردی استفاده از سشن ها این است: برای مثال در نظر بگیرید برای ثبت نام کاربر باید چندین فرم را پر کند که چند صفحه جدا از هم هستند. به این ترتیب شما میتوانید اطلاعات هر صفحه را داخل سشن کاربر ذخیره کنید سپس در فرم صفحه آخر همه اطلاعات را به صورت یکجا درون دیتابیس ذخیره کنید.

در این مطلب با هم به نحوه ایجاد سشن ها و از بین بردن آنها و نکات امنیتی می پردازیم.

(بیشتر…)

مدل MVC در PHP – قسمت دوم

  • بوسیله: محسن شفیعی
  • در 1391/12/24 - 21:09
  • نظرات (5)
PHP – پی اچ پی

PHP – پی اچ پی

این مطلب ادامه مطلب “مدل MVC در PHP – قسمت اول” است. ابتدا این مطلب را مطالعه کنید.

به بخش دوم از این سری از مطالب خوش آمدید. در این مطالب ما در باره ملاحظاتی صحبت میکنیم که شما در زمان طراحی مدل MVC باید در نظر بگیرید. اگر مطلب اول را خوانده اید مطلب دوم را شروع میکنیم.

مسیریابی و URLها

اگر چه مدل MVC یک مدل بسیار خوب برای برنامه نویسی است اما ترکیب آن با وب و PHP ممکن است کمی مشکل دار شود. مشکل اول مسیریابی URL است. مسیریابی URL جنبه ای در وب است که اصلا در زمان ساخت MVC در نظر گرفته نشده است. بنابراین باید از مدل های خودمان در این جنبه استفاده کرد.

(بیشتر…)

مدل MVC در PHP – قسمت اول

  • بوسیله: محسن شفیعی
  • در 1391/12/14 - 22:54
  • نظرات (10)
PHP - پی اچ پی

PHP – پی اچ پی

مدل MVC یا Model-View-Control در اواخر سال 1970 شکل گرفت که الگوی نرم افزاریی بود که بر اساس ارائه اطلاعات جدا از متدهایی که با داده ها در ارتباط هستند ساخته شد. به عنوان یک توسعه دهنده سیستم MVC باید این اجازه را برای توسعه دهندگان front-end و back-end ایجاد کرد که هر دو طرف بتوانند با سیستم کار کنند بدون اینکه بخواهند در فایلها دخالت, اشتراک و یا تغییری ایجاد کنند.

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

در این مطلب ما به اصول مدل MVC میپردازیم و یک مثال سریع از MVC در PHP میزنیم. این مطلب برای کسانی که قصد آشنایی با برنامه نویسی به سبک MVC دارند مناسب است.

برای درک MVC باید با برنامه نویسی به روش شیء گرا آشنا باشید.

(بیشتر…)

نحوه کار با PDO و دفع SQL Injection از طریق آن

  • بوسیله: محسن شفیعی
  • در 1391/11/28 - 13:47
  • نظرات (8)
نحوه کار با PDO و دفع SQL Injection از طریق آن

نحوه کار با PDO و دفع SQL Injection از طریق آن

این مطلب در دسته بندی مطالب پی اچ پی است. پی اچ پی را در اینجا دنبال کنید.

در مطالب گذشته در مورد امنیت در PHP در مورد حمله SQL Injection صحبت کردیم. و گفتیم میتوان با استفاده از PDO برای دفع این حملات استفاده کرد. در این مطلب با نحوه کار با PDO آشنا میشویم. سعی کنید از این به بعد در پروژه ها از PDO استفاده کنید.

شما احتمالا همیشه برای نمایش تعدادی رکورد از دیتابیس به صورت زیر به دیتابیس متصل میشدید و رکوردها را نمایش میدادید:

$connection=@mysql_connect($host,$user_name,$pass_word) or die(mysql_error());
$dbConnection=mysql_select_db($db_name,$connection) or die(mysql_error());
$query="insert into p5
                    (id,name,num_of_stu) values
                    ('".$id."','".$name."','".$num_of_stu."')";
$result=mysql_query($query);

اما با PDO کار فقط کمی فرق میکند. با PDO شما میتوانید به همه دیتابیس ها از انواع مختلف متصل شوید بدون اینکه در کدهایتان تغییری ایجاد کنید(البته کمی تغییر اجتناب ناپذیر است). همچنین PDO به صورت شی گرا نوشته شده است. وقتی شما از PDO برای کار با دیتابیس استفاده میکنید در واقع شما حملات SQL Injection را نیز دفع کرده اید. اطلاعات بیشتر در مورد SQL Injection

(بیشتر…)

نحوه آپلود فایل در PHP

  • بوسیله: محسن شفیعی
  • در 1391/11/21 - 20:29
  • نظرات (12)
نحوه آپلود فایل در PHP

نحوه آپلود فایل در PHP

این مطلب در دسته بندی مطالب پی اچ پی است. پی اچ پی را در اینجا دنبال کنید.

در سایت های زیادی امکان آپلود فایل وجود دارد. در واقع یکی از ویژگی های مهم سایت ها می باشد. در این مطلب با نحوه آپلود فایل بر روی سرور به صورت امن آشنا میشویم.

الزامات

برای آپلود فایل ابتدا باید مطمئن شوید که امکان آپلود فایل برای شما وجود دارد یا خیر که این کار را میتوانید با استفاده از تابع phpinfo انجام دهید و مقدار file_uploads را چک کنید که برابر on باشد. البته این امکان امروزه در همه وب سایت ها فعال است.

فایل های آپلود شده در PHP ابتدا به پوشه temporary منتقل میشوند که به صورت پیشفرض محل آن مشخص است. شما میتوانید از طریق فایل php.ini و مقدار upload_tmp_dir این مسیر را خودتان تغییر دهید.

HTML

برای اینکه به کاربر امکان آپلود فایل بدهید ابتدا باید یک فرم با خصوصیت enctype و مقدار multipart/form-data بسازید سپس یک input با نوع file درون آن ایجاد کنید. مانند دیگر عناصر فرم شما حتما باید خصوصیت  name را برای این عنصر مقداردهی کنید.

(بیشتر…)

رسم نمودار با pChart در PHP

  • بوسیله: محسن شفیعی
  • در 1391/11/19 - 22:34
  • نظرات (9)
رسم نمودار با pChart در PHP

رسم نمودار با pChart در PHP

این مطلب در دسته بندی مطالب پی اچ پی است. پی اچ پی را در اینجا دنبال کنید.

pChart کتابخانه ای به زبان PHP است که به ما امکان رسم نمودارهایی را میدهد. این کتابخانه رایگان است و به صورت شیء گرایی نوشته شده است. پس از این مطلب آموزشی شما میتوانید نمودارهای خود را با استفاده از این کتابخانه به راحتی درست کنید.


نصب

این کتابخانه با PHP نسخه 5 به بالا کار میکند. همچنین در نسخه شما باید قابلیتهای GD و FreeType فعال باشد. البته امروزه به صورت متداول فعال است اما برای اطمینان با استفاده از تابع phpinfo این دو قابلیت را چک کنید. در صورت فعال بودن این دو قابلیت هم چنین داشتن PHP نسخه 5 به بالا شما میتوانید از pChart استفاده کنید.

(بیشتر…)

اعتبار سنجی داده های ورودی با استفاده تابع Filter

  • بوسیله: محسن شفیعی
  • در 1391/11/17 - 9:49
  • نظرات (4)
اعتبار سنجی داده های ورودی با استفاده تابع Filter

اعتبار سنجی داده های ورودی با استفاده تابع Filter

این مطلب در دسته بندی مطالب پی اچ پی است. پی اچ پی را در اینجا دنبال کنید.

شما همواره باید داده های ورودی را فیلتر و اعتبار سنجی کنید. ما در این مطلب با استفاده از تابع Filter اینکارو انجام میدیم. این تابع ممکن است در ظاهر زیاد خوب به نظر نرسد اما دارای ثبات و امنیت است در صورتی که درست از آن استفاده کنید.

این تابع دارای دو نوع filter_input و filter_var است.

این تابع در PHP نسخه 5.2 انتشار پیدا کرد و به خوبی از متغیرهای سوپر گلوبال SuperGlobal استفاده میکند.

در کد زیر ما از روش قدیمی برای چک کردن مقدار ورودی استفاده کردیم. در این مثال مقداری ورودی باید عدد باشد و بین اعداد 15 و 20 باشد.

(بیشتر…)

8 راهکار امنیتی مهم برای سایت ها

  • بوسیله: محسن شفیعی
  • در 1391/11/14 - 10:15
  • نظرات (3)
8 راهکار امنیتی مهم برای سایت ها

8 راهکار امنیتی مهم برای سایت ها

این مطلب در دسته بندی مطالب پی اچ پی است. پی اچ پی را در اینجا دنبال کنید.

به شخصه مطمئن هستم اگر از با PHP آشنایی داشته باشد و مطالب زیر را بخوانید و عمل کنید امنیت سایت خود را به میزان بسیار بالایی افزایش داده اید. این مطلب را به هیچ وجه از دست ندهید.

در این مطلب ما به توضیح 8 راهکار برای بالا بردن امنیت در سایتتان میپردازیم. در زیر به چنیدین عادت های برنامه نویسان در جهت بالا بردن امنیت در سایت را لیست کرده ایم:

–          اعتبار سنجی داده های ورودی

–          حفاظت در برابر حمله های XSS

–          حفاظت در برابر حمله های CSRF

–          جلوگیری از حمله های SQL Injection

–          حفاظت از سیستم فایل

–          حفاظت از داده های Session

–          رفع خطای مناسب

–          حفاظت از فایل های Include شده

(بیشتر…)

XSS و راه حل آن

  • بوسیله: محسن شفیعی
  • در 1391/11/11 - 17:51
  • نظرات (6)
XSS و راه حل آن

XSS و راه حل آن

این مطلب در دسته بندی مطالب پی اچ پی است. پی اچ پی را در اینجا دنبال کنید.

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

(بیشتر…)

آموزش کار با ajax بخش دوم

  • بوسیله: محسن شفیعی
  • در 1391/11/09 - 11:35
  • نظرات (9)
آموزش کار با ajax

آموزش کار با ajax

این مطلب در دسته بندی مطالب جی کوئری است. جی کوئری را در اینجا دنبال کنید.

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

توصیه میکنم که اگر مطلب مطلب قبل را نخوانید ابتدا آن را مطالعه کنید.

(بیشتر…)