ایمن ساختن خروجی

ایمن ساختن خروجی ، فرآیند گریز از داده ­های خروجی است. گریز به معنای حذف داده­ های ناخواسته است، مانند HTML ناقص یا برچسب­ های اسکریپت. هر زمانی که داده ­ها را ارائه می ­کنید، اطمینان حاصل کنید که به درستی از آن رهایی می­ جویید. گریز خروجی از حملات XSS (اسکریپت میان سایت) جلوگیری می کند.

توجه: اسکریپت میان سایت (XSS)، یک نوع آسیب­پذیری امنیت کامپیوتر است، که معمولاً در برنامه­های کاربردی وب یافت می­شود. XSS مهاجمین را قادر می­سازد تا اسکریپت­های سمت سرویس­گیرنده یا کلاینت را به صفحات وب مشاهده شده توسط سایر کاربران تزریق کنند. آسیب­پذیری اسکریپت میان سایتی می­تواند توسط مهاجمان برای دور زدن کنترل­های دسترسی مانند سیاست مبدأ یکسان، مورد استفاده قرار بگیرد.

رهایی یا گریز

رهایی یا گریز به ایمن ساختن داده­ ها در قبل از ارائه آن به کاربر نهایی کمک می ­کند. وردپرس دارای چند تابع کمکی است که می­ توانید از آنها برای متداول ­ترین سناریوها استفاده کنید.

  • esc_html() – در هر زمانی که عنصر HTML، بخشی از داده­ها نمایش داده شده را ضمیمه می­کند، از این تابع استفاده کنید.
  • esc_url() – از این تابع در تمام URLها استفاده کنید، از جمله موارد موجود در صفات src و href یک عنصر HTML.
  • esc_js() – از این تابع برای جاوا اسکریپت درون خطی یا inline استفاده کنید.
  • esc_attr() – از این تابع در مورد هر چیز دیگری که در ویژگی عنصر HTML چاپ شده است، استفاده کنید.

هشدار: اکثر توابع وردپرس، داده­ها را به درستی برای خروجی آماده می­کنند، بنابراین نیازی به گریز مجدد از داده­ها ندارید. به عنوان مثال، می­توانید با خیال راحت و بدون گریز the_title() را فراخوانی کنید.

گریز با محلی­ سازی

به جای استفاده از اکو یا پژواک نسبت به داده­ های خروجی، استفاده از توابع محلی­ سازی وردپرس مانند _e() یا __() رایج است.

این توابع به سادگی یک تابع محلی­ سازی را داخل یک تابع گریز قرار می­ دهند:

1
2
3
esc_html_e( 'Hello World', 'text_domain' );
// same as
echo esc_html( __( 'Hello World', 'text_domain' ) );

این توابع کمکی، محلی­ سازی و گریز را ترکیب می­ کنند:

  • esc_html__()
  • esc_html_e()
  • esc_html_x()
  • esc_attr__()
  • esc_attr_e()
  • esc_attr_x()

گریز سفارشی

در صورتی که شما به گریز از خروجی خود به شیوه­ای خاص نیاز دارید، تابع wp_kses() (با تلفظ “kisses”) مفید خواهد بود.

این تابع تضمین می­کند که تنها عناصر 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()، یک تابع پوشش برای wp_kses است، که در آن $allowed_html مجموعه قوانین مورد استفاده توسط محتوای پست است.

1
echo wp_kses_post( $post_content );

خیلی مهم است بدانیم دیدگاه شما راجع به این مطلب چیست؟

avatar
  Subscribe  
Notify of