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

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

اعتبار سنجی داده های ورودی که کاربر یا برنامه در صفحات وب وارد می نمایند ، یکی از مهمترین مسائل در زمینه طراحی صفحات وب امن می باشد .
برای روشن شدن مسئله به چند مثال اشاره می کنم .
فرض کنید که شما یک فرم ثبت نام در سایت خود ایجاد کرده اید . کاربر در زمان ثبت نام باید یکسری اطلاعات خواسته شده را در فرم وارد نماید . مسلما اطلاعات ورودی باید با شرایط و معیارهای مورد نظر شما ، تطابق داشته باشد .
برای مثال نام ورودی کاربر بایستی حداکثر ۱۵ کاراکتر باشد . یا مثلا رمز عبور در دو کادر به صورت یکسان بوده و یا در نهایت باید ایمیلی که توسط وی وارد می شود ،، فرمت یک ایمیل واقعی را داشته باشد و … .
یک طراح وب باید این قابلیت و توانایی را داشته باشد که بتواند داده های ورودی را با معیارهای مورد نظر خود سنجیده و سپس در صورت صحیح بودن آنها ، اطلاعات را به سرور ارسال نماید . به این کار در PHP ، اعتبار سنجی اطلاعات یا فیلتر کردن می گویند .

اعتبار سنجی داده ها اعتبار سنجی داده ها اعتبار سنجی داده ها Data validation

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

چه اطلاعاتی را باید اعتبار سنجی نمود :

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

  • داده های که کاربر در فرم های وب وارد می نماید .
  • کوکی هایی که مرورگر می فرستد .
  • داده های سرویس های وب .
  • نتایج جستجو در پایگاه داده های سرور ( Query Results ) .

معرفی تابع های اصلی در عملیات اعتبار سنجی در PHP :

  • تابع ( ) filter_var : این تابع یک متغیر را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
  • تابع ( ) filter_var_array : این تابع آرایه ای از متغیرها را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
  • تابع ( ) filter_input-Get : این تابع مقدار یک کادر دریافت داده را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
  • تابع ( ) filter_input_array : این تابع مقدار چندین کادر دریافت داده را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .

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

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

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

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

در کد زیر ما از روش قدیمی برای چک کردن مقدار ورودی استفاده کردیم. در این مثال مقداری ورودی باید عدد باشد و بین اعداد ۱۵ و ۲۰ باشد.

این تابع در پارامتر اول نوع سوپر گلوبال را میگیرد. اگر ما از روش POST استفاده کرده بودیم باید از مقدار INPUT_POST استفاده کنیم. در پارامتر دوم نام اندیس آرایه را دریافت میکند. در پارامتر سوم نوع فیلتر را باید مشخص کرد. و در پارامتر آخر میتوان تنظمیاتی برای فیلتر انتخاب کرد که بر اساس نوع فیلتر این تنظیمات متفاوت است. که در لینکی که داده شد مقدارهای option هم قرار دارد.

خب از filter_var هم که از اسمش پیداست برای فیلتر متغیر استفاده میشود. برای مثال ما در تابع زیر مقدار ایمیل را دریافت میکنیم سپس آن را ایمیل میکنیم. اما ابتدا آن را از تابع filter_var عبور میدهیم.

 

با استفاده از توابع توانستیم اعتبار سنجی داده های ورودی را انجام دهیم. استفاده از این توابع باعث امنیت ۱۰۰% کد شما نمیشود. اما تاثیر خود را خواهد گذاشت. نظرات خود را درباره این تابع بیان کنید.

لیست توابع اعتبار سنج در PHP :

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

نام تابع شرح عملکرد
filter_has_var ( ) این تابع کنترل می کند که آیا کاربر مقدار لازم را در کادر داده ورودی وارد کرده و یا آن را خالی رها نموده است .
filter_input ( ) این تابع مقادیر و متغیرهایی که به صفحه وارد می شوند مثل کوکی ها و یا مقادیر وارد شده در کادر های متن را دریافت کرده و اعتبار سنجی می نماید .
filter_input_array ( ) این تابع مقدار آرایه ای از متغیر ها یا اطلاعاتی که به صفحه وارد می شوند مثل کوکی ها و یا مقادیر وارد شده در یک سری کادر متن را دریافت کرده و اعتبار سنجی می نماید .
filter_list ( ) تابع ( ) filter_list ، آرایه ای از کلیه فیلترهای اعتبار سنجی که سرور PHP و مرورگر کاربر پشتیبانی می کند ، را بر می گرداند .
filter_var ( ) این تابع مقدار یک متغیر را گرفته و براساس مورد نظر برنامه ریزی شده ، اعتبار سنجی می نماید .
filter_var_array ( ) این تابع مقدار چندین متغیر ( آرایه ای از متغیر ها ) را گرفته و براساس مورد نظر برنامه ریزی شده ، اعتبار سنجی می نماید .

 

آموزش PHP آموزش طراحی وب

دیدگاه خود را بیان کنید