اعتبار سنجی داده های ورودی که کاربر یا برنامه در صفحات وب وارد می نمایند ، یکی از مهمترین مسائل در زمینه طراحی صفحات وب امن می باشد .
برای روشن شدن مسئله به چند مثال اشاره می کنم .
فرض کنید که شما یک فرم ثبت نام در سایت خود ایجاد کرده اید . کاربر در زمان ثبت نام باید یکسری اطلاعات خواسته شده را در فرم وارد نماید . مسلما اطلاعات ورودی باید با شرایط و معیارهای مورد نظر شما ، تطابق داشته باشد .
برای مثال نام ورودی کاربر بایستی حداکثر ۱۵ کاراکتر باشد . یا مثلا رمز عبور در دو کادر به صورت یکسان بوده و یا در نهایت باید ایمیلی که توسط وی وارد می شود ،، فرمت یک ایمیل واقعی را داشته باشد و … .
یک طراح وب باید این قابلیت و توانایی را داشته باشد که بتواند داده های ورودی را با معیارهای مورد نظر خود سنجیده و سپس در صورت صحیح بودن آنها ، اطلاعات را به سرور ارسال نماید . به این کار در PHP ، اعتبار سنجی اطلاعات یا فیلتر کردن می گویند .
در این بخش قصد داریم تا شما را نحوه انجام این عملیات آشنا سازیم .
چه اطلاعاتی را باید اعتبارسنجی اطلاعات PHP نمود :
کلیه اطلاعاتی که از سوی کاربر یا برنامه به سرور ارسال می شوند ، بایستی اعتبار سنجی شوند . سپس در صورت صحیح بودن مورد استفاده قرار بگیرند .
در لیست زیر ، انواع داده های ورودی به یک صفحه وب را بررسی کرده ایم . عموما شما باید این اطلاعات را اعتبار سنجی نمایید :
داده های که کاربر در فرم های وب وارد می نماید .
کوکی هایی که مرورگر می فرستد .
داده های سرویس های وب .
نتایج جستجو در پایگاه داده های سرور ( Query Results ) .
معرفی تابع های اصلی در عملیات اعتبارسنجی اطلاعات PHP :
در لیست زیر چهار تابع اصلی ، در عملیات اعتبار سنجی متغیر ها و کادر های ورود اطلاعات در PHP را به شما معرفی کرده ایم . این تابع ها دارای بیشترین کاربرد در عملیات اعتبار سنجی هستند . در ادامه به توضیح کامل این توابع خواهیم پرداخت :
تابع ( ) filter_var : این تابع یک متغیر را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
تابع ( ) filter_var_array : این تابع آرایه ای از متغیرها را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
تابع ( ) filter_input-Get : این تابع مقدار یک کادر دریافت داده را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
تابع ( ) filter_input_array : این تابع مقدار چندین کادر دریافت داده را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
یک مثال ساده و ابتدایی از اعتبار سنجی داده :
مثال : در مثال ساده زیر یک عملیات اعتبار سنجی ساده را انجام داده ایم . این مثال برای آشنایی کلی و ابتدایی شما با نحوه اعتبار سنجی داده در PHP است و در بخش های بعد ، مثال های کامل تری را به شما نشان خواهیم داد .
در این مثال ابتدا یک متغیر معمولی تعریف شده است . سپس توسط یک دستور با استفاده از تابع “FILTER_VALIDATE_INT” که یکی از تابع های اعتبار سنج پیش فرض در PHP است ، این مسئله بررسی شده است که آیا متغیر تعریف شده ، عدد است یا خیر . در صورت عدد بودن آن عبارت “Integer is valid” و در صورت عدد نبودن آن عبارت “Integer is not valid” در خروجی چاپ خواهد شد :
مثال :
<?php $int = 123; if ( filter_var ( $int , FILTER_VALIDATE_INT ) ) { echo ( " Integer is not valid " ); } else { echo ( " Integer is valid "); } ?>
مرجع توابع و فیلتر های اعتبارسنجی اطلاعات PHP:
همانطور که در بخش قبل درباره عملیات اعتبار سنجی داده های ورودی در فرم ها در PHP ، توضیح دادیم ، این زبان دارای تعداد زیادی تابع و فیلتر پیش ساخته و آماده استفاده است که به راحتی و بدون نیاز به کدنویسی ، انواع عملیات های اعتبار سنج داده را برای کاربر انجام می دهند .
این توابع و فیلترها ، بخشی از هسته اصلی PHP بوده و برای استفاده از آنها ، نیاز به نصب و یا استفاده از برنامه و ابزار جانبی خاصی وجود ندارد .
در دو جدول زیر به معرفی توابع و فیلترهای اعتبار سنج در PHP پرداخته ایم . برای دریافت اطلاعات کاملتر و مشاهده مثال های عملی بر روی نام هر یک از آنها کلیک نمایید .
لیست توابع اعتبارسنجی اطلاعات PHP :
در زیر انواع تابع های پیش ساخته اعتبار سنج در PHP قرار داده شده.
به وسیله PHP ، می توانید مقادیر که کاربر در یک کادر متن وارد می کند را اعتبار سنجی کرده و در صورت صحیح بودن ، این مقادیر را به سرور ارسال کرده و استفاده نمایید.
filter_has_var ( ): این تابع کنترل می کند که آیا کاربر مقدار لازم را در کادر داده ورودی وارد کرده و یا آن را خالی رها نموده است.
filter_input ( ): این تابع مقادیر و متغیرهایی که به صفحه وارد می شوند مثل کوکی ها و یا مقادیر وارد شده در کادر های متن را دریافت کرده و اعتبار سنجی می نماید.
filter_input_array ( ): این تابع مقدار آرایه ای از متغیر ها یا اطلاعاتی که به صفحه وارد می شوند مثل کوکی ها و یا مقادیر وارد شده در یک سری کادر متن را دریافت کرده و اعتبار سنجی می نماید.
filter_list ( ): تابع ( ) filter_list ، آرایه ای از کلیه فیلترهای اعتبار سنجی که سرور PHP و مرورگر کاربر پشتیبانی می کند ، را بر می گرداند.
filter_var ( ): این تابع مقدار یک متغیر را گرفته و براساس مورد نظر برنامه ریزی شده ، اعتبار سنجی می نماید.
filter_var_array ( ): این تابع مقدار چندین متغیر ( آرایه ای از متغیر ها ) را گرفته و براساس مورد نظر برنامه ریزی شده، اعتبار سنجی می نماید.
اعتبار سنجی داده های ورودی در کادر متن در PHP
اعتبار سنجی از دو جهت صورت می گیرد :
در مرحله اول باید مطمئن شوید که کاربر اصلا چیزی در کادر متن مورد نظرتان وارد نموده است یا خیر . به عبارت دیگر کادر متن را خالی رها نکرده باشد . در این صورت می توانیم یک پیام هشدار به کاربر بدهیم تا مقادیر لازم را وارد کند .
در مرحله دوم باید اطمینان حاصل شود که مقادیر وارد شده با داده ای که می خواهیم ، تطابق دارد یا خیر .
برای مثال در یک کادر متن کاربر بایستی حداقل ۸ کاراکتر وارد نماید . یا در یک کادری که کاربر باید آدرس ایمیل خود را وارد نماید ، مقادیر وارد شده با فرمت یک ایمیل سازگاری دارد . به وسیله تابع های پیش فرضی که در PHP وجود دارند ، می توان به سهولت این امور را کنترل کرد .
در این بخش قصد داریم تا شما را با انجام این مراحل آشنا سازیم .