با عرض سلام خدمت کاربران محترم سایت پی وی لرن.
با جلسه ای دیگر از سری جلسات دوره جامع آموزش ساخت قالب وردپرس در خدمت شما هستیم.
در این جلسه قصد داریم به آموزش Sanitization و Escaping داده ها در وردپرس بپردازیم.
Sanitization (پاکسازی) و Escaping دو اصطلاح در امنیت وردپرس هستند که به اعتبار سنجی، فیلتر و ایمن سازی داده ها اشاره میکند.
داده های ورودی ممکن است آلوده به هرگونه کد مخرب باشند که اگر بررسی نشوند، امنیت سایت به خطر میافتد.
Sanitization فرآیند پاکسازی یا فیلتر داده های ورودی است.
داده های ورودی میتوانند داده های کاربر و یا داده های وب سرویس باشند.
از Sanitization هنگامی استفاده میکنید که نمیدانید انتظار چه نوع داده هایی را دارید و یا نمیخواهید از اعتبار سنجی داده ها استفاده کنید.
آسان ترین راه برای sanitize یا پاکسازی داده ها، استفاده از توابع خود وردپرس است.
مجموعه توابع sanatize یک روش مؤثر برای اطمینان حاصل کردن از امن بودن داده ها است.
فرض کنید یک فیلد ورودی به صورت زیر داریم:
1 | <input id="title" type="text" name="title"> |
با استفاده از تابع ()sanatize_text_field میتوانیم داده های فیلد را پاکسازی کنیم.
1 2 | $title = sanitize_text_field( $_POST['title'] ); update_post_meta( $post->ID, 'title', $title ); |
در واقع این تابع کار های زیر را انجام میدهد:
Escaping فرآیند ایمن سازی داده های خروجی با حذف کردن داده های ناخواسته است تا از دیده شدن آن ها به شکل کد جلوگیری کند.
مانند کد های HTML یا تگ های script.
هرگاه داده ها را صادر یا خارج میکنید، مطمئن شوید که به درستی آن ها را Escape میکنید.
این کار از حملات XSS جلوگیری میکند.
وردپرس تعدادی تابع دارد که میتوانید در این موارد استفاده کنید.
1 | <?php echo esc_html( $title ); ?> |
1 | <img src="<?php echo esc_url( $great_user_picture_url ); ?>" /> |
1 | <a href="#" onclick="<?php echo esc_js( $custom_js ); ?>">Click me</a> |
1 | <ul class="<?php echo esc_attr( $stored_class ); ?>"> </ul> |
1 | <textarea><?php echo esc_textarea( $text ); ?></textarea> |
جلسه آموزش Sanitization و Escaping داده ها در وردپرس نیز به پایان رسید.
در جلسه بعد به آموزش اعتبار سنجی داده ها در وردپرس خواهیم پرداخت.