- آموزش زمان بندی رویدادها با WP Cron در وردپرس
- مقدمه ای بر توسعه افزونه
- افزونه چیست ؟
- مبانی افزونه
- نیازمندی های هدر
- درج یک مجوز نرم افزار در افزونه
- قلاب های فعال و غیر فعال سازی
- متدهای حذف در سایت های وردپرس
- امنیت افزونه
- بررسی قابلیت های کاربر
- اعتبار سنجی داده ها
- امنیت ورودی
- امنیت خروجی
- Nonce ها
- قلاب ها
- اکشن ها (Actions)
- فیلترها (Filters)
- ایجاد قلاب های سفارشی
- تاپیک های پیشرفته
- منوهای مدیریت
- منوهای سطح بالا
- زیر منوها
- کدهای کوتاه
- مبانی کدهای کوتاه
- کدهای کوتاه جفتی
- کدهای کوتاه پارامتردار
- تنظیمات
- API های تنظیمات
- ایجاد و استفاده از گزینه ها
- گزینه های تکی و آرایه ای
- صفحه تنظیمات سفارشی
- فراداده (Metadata)
- ایجاد و مدیریت فراداده نوشته
- ایجاد متاباکس های سفارشی
- دریافت فراداده
- انواع نوشته سفارشی
- ایجاد پست تایپ سفارشی
- کار با داده های پست تایپ ها
- طبقه بندی یا Taxonomy در وردپرس
- ایجاد و کار با طبقه بندی های سفارشی
- کار با متادیتا (Metadata) کاربران در وردپرس
- ایجاد و مدیریت کاربران در وردپرس
- نقش ها و قابلیت های کاربران در وردپرس
- آموزش استفاده از سرویس HTTP API در وردپرس
- آموزش استفاده از ایجکس (Ajax) در وردپرس
- آموزش استفاده از Transients برای کش کردن در وردپرس
- آموزش WP-Cron وردپرس
- آموزش استفاده از جیکوئری (jQuery) در وردپرس
- آموزش کار با PHP سمت سرور و Enqueue در وردپرس
- قلاب کردن WP-Cron وردپرس به سیستم زمان بندی سرور
در این بخش می خوانیم :
Nonce ها
نتیجه گیری
Nonce ها
Nonce ها اعداد تولید شده ای توسط وردپرس هستند ، که به منظور تایید منشاء (منبع) و هدف درخواست های ارسالی به وردپرس ، برای کمک به تامین امنیت وردپرس ، وجود دارند .
هر Nonce تنها یکبار می تواند مورد استفاده قرار گیرد و شامل یک قابلیت بررسی است که ارسال کننده را تایید کند .
می توانید Nonce را به عنوان یک توکن برای اطمینان از یک عمل معتبر در نظر بگیرید .
به عنوان مثال در وردپرس ، قابلیت بررسی ، این اطمینان را حاصل می کند که تنها کاربران دارای دسترسی به حذف نوشته ، قادر به حذف کردن نوشته ها هستند .
اما اگر یک نفر با هر روش دیگری (بجز سطح دسترسی مجاز) بتواند روی لینک حذف کلیک کند ، چه اتفاقی خواهد افتاد ؟
چون این شخص توانسته است روی لینک حذف نوشته کلیک کند ، پس شما به صورت ناخواسته نوشته (هایی) را از دست خواهید داد .
Nonce ها می توانند برای بررسی اینکه ، آیا هدف واقعی کاربر جاری انجام دادن عمل انتخاب شده است یا خیر ،مورد استفاده قرار گیرند.
زمانی که می خواهید یک لینک عملیاتی ایجاد می کنید ، از تابع wp_create_nonce() برای اضافه کردن یک Nonce به آن به صورت زیر استفاده کنید .
function wporg_frontend_delete_link() {
if ( ! current_user_can( 'edit_others_posts' ) ) {
return;
}
$url = add_query_arg(
array(
'action' => 'wporg_frontend_delete',
'post' => get_the_ID(),
'nonce' => wp_create_nonce( 'wporg_frontend_delete' ),
),
home_url()
);
printf( '<a href="%s">Delete</a>', esc_url( $url ) );
}
پارامتر ارسال شده به تابع ، این اطمینان را می دهد که یک nonce یکتا برای آن عمل خاص ایجاد شده است .
سپس ، زمانی که شما درخواست حذف یک لینک را پردازش می کنید ، می توانید بررسی کنید که آیا همان nonce ای که انتظار آن را دارید ، ایجاد شده است یا خیر :
if ( isset( $_REQUEST['action'] ) && 'wporg_frontend_delete' === $_REQUEST['action'] ) {
add_action( 'init','wporg_frontend_delete_post' );
}
function wporg_frontend_delete_post() {
if ( ! current_user_can( 'edit_others_posts' ) ) {
return;
}
if ( ! wp_verify_nonce( $_REQUEST['nonce'], 'wporg_frontend_delete' ) ) {
return;
}
// Get the ID of the post.
$post_id = ( isset( $_REQUEST['post'] )) ? get_post( (int) $_REQUEST['post'] ) : false;
// No post? Oh well..
if ( empty( $post_id ) ) {
return;
}
// Delete post
wp_trash_post( $post_id );
// Redirect to admin page
$redirect = admin_url( 'edit.php' );
wp_safe_redirect( $redirect );
exit;
}
نتیجه گیری
زمانی که شما می خواهید هر گونه عملیات انتقال داده ای مانند ذخیره فرم تنظیمات یا حذف یک نوشته را انجام دهید ، باید مطمئن شوید که کاربر ارسال کننده داده ، همان شخصی است که شما انتظار آن را دارید و دارای سطح دسترسی مناسب برای انجام آن عمل است .
انجام این دو کار (معتبر بودن کاربر و داشتن سطح دسترسی متناسب با عملیات مورد نظر ) با هم باعث می شود که مطمئن شوید ، داده ها زمانی تغییر پیدا می کنند که کاربر واقعی وردپرس می خواهد آنها را تغییر دهد .






