دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۴
  • شهریور

جلسه ۱۱ : اعتبار سنجی داده های پلاگین

  • دسته‌بندی‌ها :
جلسه ۱۱ : اعتبار سنجی داده های پلاگین
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

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

      اعتبار سنجی داده های پلاگین

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

      معمولا این امر در مورد داده هایی که از منابع خارجی چون ورودی کاربر و تماس به سرویس های وب از طریق API استفاده می شود صدق می کند.

      نمونه های ساده اعتبار سنجی داده های پلاگین :

      • Check that required fields have not been left blank
        بررسی این که فیلدهای لازم خالی شده اند یا خیر.
      • Check that an entered phone number only contains numbers and punctuation
        بررسی این که شماره تلفن وارد شده فقط شامل شماره ها و نشانه گذاری است یا خیر.
      • Check that an entered postal code is a valid postal code
        بررسی این که که کد پستی وارد شده یک کد پستی معتبر است یا خیر.
      • Check that a quantity field is greater than 0
        بررسی این که مقدار کمتری از ۰ است یا خیر.

      اعتبار سنجی داده ها باید در اسرع وقت انجام شود.
      این بدین معنی است که قبل از انجام هر اقدام، اعتبار داده ها را بررسی کنید.

      نکته

      اعتبار سنجی را می توان با استفاده از جاوا اسکریپت در front end و با استفاده از PHP در back end انجام داد.

      اعتبار دادن به داده ها

      برای این کار حداقل سه راه وجود دارد:
      – توابع built-in PHP
      – توابع اصلی وردپرس
      – توابع سفارشی که شما می نویسید.

      توابع Built-in PHP

      اعتبار سنجی اولیه با استفاده از بسیاری از توابع PHP ساخته شده ، از جمله :

      • ()isset و ()empty برای بررسی اینکه آیا یک متغیر وجود دارد و خالی نیست.
      • ()mb_strlen یا ()strlen برای بررسی اینکه یک رشته دارای تعداد مورد انتظار است.
      • ()preg_match()، strpos برای بررسی وقایع رشته های خاص در رشته های دیگر.
      • ()count برای بررسی اینکه چند مورد در آرایه وجود دارد.
      • ()in_array برای بررسی اینکه آیا چیزی در آرایه وجود دارد یا خیر.

      توابع اصلی وردپرس

      وردپرس تعدادی تابع مفید فراهم می کند که به اعتبار سنجی انواع داده ها کمک می کند.
      در اینجا به چند نمونه اشاره شده است :

      • ()is_email تعیین می کند که یک آدرس ایمیل معتبر است یا خیر.
      • ()term_exists بررسی می کند که آیا یک برچسب، دسته یا سایر اصطلاحات طبقه بندی وجود دارد یا خیر.
      • ()username_exists اگر نام کاربری وجود داشته باشد، آن بررسی می کند.
      • ()validate_file تایید می کند که مسیر فایل وارد شده یک مسیر واقعی است (نه اینکه آیا فایل وجود دارد یا خیر).

      توابع PHP و جاوا اسکریپت سفارشی سازی شده

      می توانید توابع PHP و جاوا اسکریپت خود را بنویسید و آنها را در پلاگین خود قرار دهید.
      هنگام نوشتن یک تابع اعتبار سنجی، میتوانید آن را مانند یک سوال بنویسید (مثال: is_phone، is_available، is_us_zipcode).

      این تابع باید بسته به اینکه آیا داده معتبر است یا نه، بولین و  true یا false بازگردانی کند.

      مثال اول

      فرض کنید یک کد پستی دارید که متعلق به ایالات متحده است.
      این کد پستی توسط یک کاربر ارائه شده است.

      مثال : 

      زمینه متن اجازه می دهد تا تا ۱۰ کاراکتر ورودی بدون هیچ گونه محدودیت در انواع کاراکتر، مورد استفاده قرار گیرد.
      کاربران می توانند چیزی معتبر مانند ۱۲۳۴۵۶۷۸۹۰ یا چیزی نامعتبر (و بد) مانند ()eval را وارد نمایند.

      ویژگی حداکثر در فیلد ورودی ما فقط توسط مرورگر اجرا می شود، بنابراین هنوز نیاز به تایید طول ورودی در سرور دارید.
      اگر شما این کار را نکنید، مهاجم می تواند مقدار maxlength را تغییر دهد.

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

      مثال : 

      هنگام پردازش فرم، کد شما باید فیلد wporg_zip_code را بررسی کند و عمل بر اساس نتیجه انجام شود :

      مثال : 

      مثال دوم

      تعیین کنید که قصد دارید پایگاه داده را برای بعضی از پست ها جستجو کنی، و به کاربر توانایی مرتب سازی نتایج پرس و جو را بدهید.

      این کد، یک الگوریتم ورودی دریافت شده (در پارامتر ورودی “orderby” ذخیره شده) با مقایسه آن با یک آرایه از کلید های مرتب سازی مجاز با استفاده از عملکرد in_array ساخته شده در PHP را از لحاظ اعتبار بررسی می کند.
      این امر مانع از انتقال کاربر به سمت اطلاعات مخرب که به طور بالقوه به وب سایت آسیب می رساند می شود.

      قبل از چک کردن کلید مرتب سازی ورودی در برابر آرایه، کلید به وظیفه ساخته شده در وظیفه sanitize_key منتقل می شود.
      این تابع اطمینان می دهد، که کلید در حروف کوچک قرار دارد(in_array یک جستجو که به حروف حساس است انجام می دهد).

      گذر “true” به پارامتر سوم in_array امکان چک کردن دقیق type را فراهم می کند.
      این کار این امکان را به تابع می دهد که نه تنها مقادیر ، بلکه مقدار types ها را نیز مقایسه کند.
      این قابلیت کد را مطمئن می سازد که کلید مرتب سازی ورودی یک رشته است و شامل نوع دیگری از داده است.

      مثال : 

      کلام آخر

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

      • داده مورد نظر از سوی الگو معتبر تشخیص داده می شود.
      • داده مورد نظر از سوی الگو معتبر تشخیص داده نمی شود.

      بنارین یک داده یا معتبر خواهد بود و یا نامعتبر.

      اعتبار سنجی داده هایی که از منابع خارجی چون ورودی کاربر و تماس به سرویس های وب از طریق API استفاده می شود بیشتر از لحاظ معتبر بودن و یا غیر معتبر بودن بررسی می شوند.
      قاعده مهمی که در اعبار سنجی داده های پلاگین آن را رعایت کرد این است که قبل از انجام هر اقدام بایستی اعتبار داده ها را بررسی کرد.
      اعتبار سنجی داده ها را می توان هم با استفاده از جاوا اسکریپت در front end و هم با استفاده از PHP در back end انجام داد.
      فرآیند اعتبار بخشی به داده ها به سه روش انجام می شود : روش اول : توابع built-in PHP، روش دوم : توابع اصلی وردپرس و روش سوم : توابع سفارشی که شما خود می توانید بنویسید.
      در جلسه بعدی به ایمنی سازی ورودی های پلاگین می پردازیم.
      با پی وی لرن همراه باشید.

      QR:  جلسه ۱۱ : اعتبار سنجی داده های پلاگین
      به اشتراک بگذارید