با عرض سلام و وقت به خیر خدمت کاربران سایت پی وی لرن به ویژه کاربرانی که به سیستم مدیریت محتوای قدرتمند وردپرس علاقمند هستند.
به ” دوره متخصص وردپرس ” خوش آمدید!
در این دوره قرار است توسعه و ارتقاء پلاگین های وردپرس را به صورت جامع و کامل بیاموزیم.
فرقی نمی کند که در شرف نوشتن اولین پلاگین خود هستید و یا این که پنجاهمین پلاگین خود را می نویسید! امیدوارم این دوره برایتان مفید باشد.
در جلسه قبل با نحوه ایمنی سازی خروجی های پلاگین آشنا شدیم و آموختیم که چگونه می توان داده های ورودی به یک پلاگین را امن کرد.
در ادامه و در این جلسه مبحث ایمنی سازی خروجی های پلاگین را به علاقمندان این دوره ارائه می نماییم.
ایمنی سازی خروجی های پلاگین در واقع فرآیند فرار از داده های خروجی است.
این فرار به معنی سلب کردن داده های ناخواسته، مانند HTML های ناقص یا تگ های اسکریپت است.
هر زمان که داده ها را ارائه می کنید، مطمئن شوید که به درستی راه فرار آن را ایجاد کرده اید.
این خروجی ها می توانند از حملات (XSS (Cross-site scripting جلوگیری کنند.
اسکریپت (Cross-site (XSS یک نوع آسیب پذیری امنیتی رایانه است که معمولا در برنامه های وب یافت می شود.
XSS مهاجمین را قادر می سازد اسکریپت های سمت سرویس گیرنده را به صفحات وب مورد نظر سایر کاربران تزریق کند.
آسیب پذیری های اسکریپتی cross-site ممکن است توسط مهاجمان مورد استفاده قرار گیرد تا از کنترل های دسترسی مانند سیاست مشابه همانند سازی دور بمانند.
Escaping یا فرار کمک می کند تا امنیت داده ها را قبل از ارائه آن به کاربر نهایی بسنجید.
وردپرس دارای چند تابع کمکی است که می تواند در این فرآیند به شما کمک کند.
اکثر توابع وردپرس به درستی داده ها را برای خروجی آماده می کنند، بنابراین شما نیازی به Escaping از داده ها ندارید.
به عنوان مثال، شما می توانید با خیال راحت بدون Escaping از ()the_title استفاده کنید.
به جای استفاده از اکو به داده های خروجی، می توانید از توابع محلی وردپرس مانند ()e_ () یا() __ استفاده نمایید.
این توابع به سادگی تابع محلی سازی را داخل یک تابع Escaping را تعریف می کند:
1 2 3 4 5 6 | 1 2 3 esc_html_e( 'Hello World', 'text_domain' ); // same as echo esc_html( __( 'Hello World', 'text_domain' ) ); |
توابع زیر localization و escaping را ترکیب می نماید.
در صورتی که می خوهید از خروجی ها را به روش خاصی فرار (escape) دهید؛ از تابع ()wp_kses استفاده نمایید.
این تابع اطمینان می دهد که فقط عناصر مشخص شده HTML، عناصر و مقادیر خصیصه هادر خروجی شما رخ می دهند و عناصر HTML عادی سازی می شود.
1 2 3 4 5 6 7 8 9 10 | $allowed_html = [ 'a' => [ 'href' => [], 'title' => [], ], 'br' => [], 'em' => [], 'strong' => [], ]; echo wp_kses( $custom_content, $allowed_html ); |
()wp_kses_post یک تابع wrapper برای wp_kses است که allowed_html$ مجموعه ای از قوانین مورد استفاده در محتوای پست است.
1 | echo wp_kses_post( $post_content ); |
در این جلسه با ایمنی سازی خروجی های پلاگین همراه شما بودیم.
در این جلسه آموختیم که ایمنی سازی خروجی های پلاگین در واقع فرآیند فرار escaping از داده های خروجی است.
در جلسه بعدی با مبحث Nonces به شما خواهیم بود.
با پی وی لرن همراه باشید.