- آموزش زمان بندی رویدادها با WP Cron در وردپرس
- مقدمه ای بر توسعه افزونه
- افزونه چیست ؟
- مبانی افزونه
- نیازمندی های هدر
- درج یک مجوز نرم افزار در افزونه
- قلاب های فعال و غیر فعال سازی
- متدهای حذف در سایت های وردپرس
- امنیت افزونه
- بررسی قابلیت های کاربر
- اعتبار سنجی داده ها
- امنیت ورودی
- امنیت خروجی
- Nonce ها
- قلاب ها
- اکشن ها (Actions)
- فیلترها (Filters)
- ایجاد قلاب های سفارشی
- تاپیک های پیشرفته
- منوهای مدیریت
- منوهای سطح بالا
- زیر منوها
- کدهای کوتاه
- مبانی کدهای کوتاه
- کدهای کوتاه جفتی
- کدهای کوتاه پارامتردار
- تنظیمات
- API های تنظیمات
- ایجاد و استفاده از گزینه ها
- گزینه های تکی و آرایه ای
- صفحه تنظیمات سفارشی
- فراداده (Metadata)
- ایجاد و مدیریت فراداده نوشته
- ایجاد متاباکس های سفارشی
- دریافت فراداده
- انواع نوشته سفارشی
- ایجاد پست تایپ سفارشی
- کار با داده های پست تایپ ها
- طبقه بندی یا Taxonomy در وردپرس
- ایجاد و کار با طبقه بندی های سفارشی
- کار با متادیتا (Metadata) کاربران در وردپرس
- ایجاد و مدیریت کاربران در وردپرس
- نقش ها و قابلیت های کاربران در وردپرس
- آموزش استفاده از سرویس HTTP API در وردپرس
- آموزش استفاده از ایجکس (Ajax) در وردپرس
- آموزش استفاده از Transients برای کش کردن در وردپرس
- آموزش WP-Cron وردپرس
- آموزش استفاده از جیکوئری (jQuery) در وردپرس
- آموزش کار با PHP سمت سرور و Enqueue در وردپرس
- قلاب کردن WP-Cron وردپرس به سیستم زمان بندی سرور
در این بخش می خوانیم :
فرار (Escaping)
فرار با محلی سازی (Escaping with localization)
فرار با اچ تی ام ال مجاز (Escaping with allowed HTML)
نتیجه گیری
هر وقت که یک داده را از وردپرس برای نمایش در سایت آماده می کنید ،باید آن را توسط فرار یا Escaping آماده سازی کنید .
فرار به معنی جلوگیری از نمایش داده های ناخواسته مانند کدهای HTML ناقص و یا تگ های اسکریپت می باشد که باعث جلوگیری از حمله خطرناک XSS یا تزریق کد به وردپرس می شود .
فرار (Escaping)
فرار به امنیت داده های شما قبل از پردازش شدن برای کاربر نهایی سایت کمک می کند .
وردپرس دارای تعداد کمی تابع است ، که شما می توانید در بیشتر موارد از آنها استفاده کنید :
esc_html() : از این تابع هر زمانی که یک عنصر HTML در دو طرف داده قرار دارد استفاده کنید . مانند کد زیر :
<h4><?php echo esc_html( $title ); ?></h4>
esc_url() : از این تابع می توانید در همه URL ها ، شامل خاصیت های src و href استفاده کنید .
<img src="<?php echo esc_url( $great_user_picture_url ); ?>" />
esc_js() : از این تابع برای کدهای جاوااسکریپت درون خطی (inline) استفاده کنید .
<a href="#" onclick="<?php echo esc_js( $custom_js ); ?>">Click me</a>
esc_attr() : از این تابع برای هر چیز دیگری بجز موارد بالا که در یک خاصیت از عناصر HTML چاپ می شود ، می توانید استفاده کنید .
<ul class="<?php esc_attr( $list_class ); ?>">
نکته : بیشتر توابع وردپرس به صورت پیش فرض ، قبل از ارسال داده ها به خروجی آنها را با این توابع امن می کنند ، بنابراین نایزی نیست که شما دوباره از این توابع برای آنها استفاده کنید . به عنوان مثال شما می توانید با خیال آسوده از تابع the_title() جهت نمایش عنوان نوشته های وردپرس بدون عمل فرار استفاده کنید .
فرار با محلی سازی (Escaping with localization)
به جای استفاده از تابع echo برای نمایش داده ها در خروجی ، وردپرس یکسری توابع مانند _e() و __() را برای اینکار فراهم کرده است .
در این حالت یکسری توابع اضافی هستند که با توابع محلی سازی ، برای امن کردن داده های خروجی ، ترکیب می شوند .
این توابع را در زیر مشاهده می کنید :
این توابع با قرار دادن توابع محلی سازی ، در پوشش (داخل) توابع فرار به صورت ساده ، امنیت داده های خروجی وردپرس را تکمیل می کنند .
// Escape and localize esc_html( _e( 'Hello World', 'text_domain' ) ); // This does the same thing esc_html_e( 'Hello World', 'text_domain' );
فرار با اچ تی ام ال مجاز (Escaping with allowed HTML)
در این نوع فرار ، چون داده های شما با هیچ کدام از موارد قبلی مطابقت ندارد و نمی توان از انها استفاده کرد ، از تابع wp_kses() برای نمایش داده های وردپرس استفاده می شود .
این تابع ، عملیات نمایش امن داده ها را توسط تگ های HTML خاصی که مجاز هستند و از لحاظ امنیت مشکلی ندارند ، انجام می دهد .
همچنین این تابع به شما اطمینان می دهد که عناصر HTML ، خاصیت ها و مقدار خاصیت هایی که در خروجی نمایش داده می شوند ، به موجودیت های نرمال HTML تبدیل شده اند .
تابع wp_kses_post() به روشی متناظر با تابع wp_kses() داده های خروجی را امن می کند ، با این تفاوت که HTML مجاز قبلاً در هنگام ذخیره محتوای نوشته امن شده است و نیازی به امن کردن دوباره آن نیست .
نتیجه گیری
هر زمانی که شما قصد نمایش داده های وردپرس در خروجی را دارید ، مطمئن باشید که آنها را توسط توابع فرار (Escaping Functions) امن کرده باشید .
امن کردن داده های خروجی توسط فرار (Escaping) از حملات خطرناکی مانند XSS یا تزریق کد جلوگیری می کند .






