Ensure that only approved users can send password reset requests
پاسخ ها: 0
سلام. متوجه شدهام که سایت ما درخواستهای بازنشانی رمز عبور را برای حسابهایی ارسال میکند که در حالت “در انتظار بررسی مدیر” هستند. (اینها حسابهای ایجاد شده توسط هرزنامهها هستند و درخواستهای بازنشانی رمز عبور قبل از حذف حسابها ارسال میشوند.) البته به ذهنم خطور کرد که میتوان از این رفتار به طور بالقوه برای ارسال چنین پیامهایی به آدرسهای ایمیل قانونی متعلق به افراد ناشناس سوء استفاده کرد. من اعتراف میکنم که در عمل، بیخطر است، زیرا گیرندگان مطمئناً پیامها را نادیده میگیرند، بیشتر از تعداد پیامهای محدودیت رمز عبور تنظیمشده تنظیمشده ارسال نمیشود، و خود پیامها کوتاه و تهاجمی نیستند. اما مطمئناً میتوانند باعث سردرگمی و در بدترین حالت آزاردهنده شوند، که ترجیح میدهیم منبع آن نباشیم.
آنچه ما می خواهیم این است که اطمینان حاصل کنیم که علاوه بر ارسال ایمیل بازنشانی رمز عبور فقط به آدرسی که سایت شناخته شده است، این ایمیل فقط برای حساب هایی که قبلاً تأیید شده اند ارسال شود. من کد را برای این منظور بررسی کردم و تابع um_reset_password_process_hook() را در include/core/class-password.php پیدا کردم، جایی که در سایت آزمایشی خود تغییر زیر را انجام دادم:
--- includes/core/class-password.php.20241206 2024-04-09 20:20:26.000000000 -0300
+++ includes/core/class-password.php 2024-12-06 11:10:12.962327061 -0400
@@ -448,11 +448,13 @@ if ( ! class_exists( 'um\core\Password'
if ( username_exists( $user ) ) {
$data = get_user_by( 'login', $user );
+ $user_id = username_exists( $user );
} elseif ( email_exists( $user ) ) {
$data = get_user_by( 'email', $user );
+ $user_id = email_exists( $user );
}
- if ( isset( $data ) && is_a( $data, '\WP_User' ) ) {
+ if ( isset( $data ) && is_a( $data, '\WP_User' && UM()->user()->is_approved( $user_id ) ) ) {
um_fetch_user( $data->ID );
UM()->user()->password_reset();
}
موارد بالا از تست اولیه سلامت عبور می کند، اما از آنجایی که من یک توسعه دهنده وردپرس نیستم (و نه حتی یک برنامه نویس PHP)، مطمئناً تصور می کنم که ممکن است راه ظریف تری برای اجرای بررسی اضافی وجود داشته باشد.
سوال من در مورد انجمن پشتیبانی این است که چگونه می توانم این تغییر را برای توسعه دهندگان Ultimate Member ارسال کنم، به طوری که آنها ممکن است در نظر داشته باشند که آن را در افزونه ادغام کنند (شاید حتی داشتن یک گزینه قابل تنظیم باشد)؟ من می توانم تصور کنم که سایت ما تنها سایتی نیست که در آن ارسال ایمیل های بازنشانی رمز عبور برای حساب هایی که هنوز تایید نشده اند منطقی نیست.
با آن، من از افراد مرتبط برای در دسترس قرار دادن این افزونه تشکر می کنم، و امیدوارم که اصلاح من در بالا به عنوان یک پیشرفت بالقوه دیده شود.
-
این موضوع 1 دقیقه پیش توسط
.
مشاهده پاسخ های این مطلب
———————————————
این مطلب از سایت انجمن وردپرس گردآوری شده است و کلیه حقوق مطلق به انجمن وردپرس می باشد در صورت مغایرت و یا بروز مشکل اطلاع دهید تا حذف گردد
منبع: انجمن وردپرس