افزونه Remote Users Sync

آنچه در این مطلب میخوانید:

روش کار

Remote Users Sync چگونه کار می کند؟

WP Remote Users Sync به تغییرات مربوط به کاربران وردپرس گوش می دهد و “اقدامات” خروجی را به سایت های راه دور ثبت شده ارسال می کند. سایت‌های راه دور ثبت‌شده با WP Remote Users Sync نصب شده، سپس اقدامات دریافتی را می‌گیرند و بر اساس آن واکنش نشان می‌دهند.
هیچ “وب سایت اصلی” وجود ندارد: هر سایت به طور مستقل کار می کند، بسته به پیکربندی هر سایت، اقدام به ارسال و دریافت اقدامات می کند.

لیست اقدامات پشتیبانی شده به طور پیش فرض:

ورود به سیستم – زمانی که کاربر وارد می شود فعال می شود. نتیجه مورد انتظار این است که کاربر در تمام سایت های راه دور ثبت شده وارد شده و اقدامات ورودی را می پذیرد.
صفحه باید بدون وقفه بارگیری شود و شبکه بین کاربر و سایت‌های راه دور قابل دسترسی باشد تا تأثیر بگذارد، زیرا این عملیات به کوکی‌های مرورگر متکی است (عمل توسط یک اسکریپت به صورت ناهمزمان در پاورقی صفحه پس از ورود انجام می‌شود) .
خروج – زمانی که کاربر از سیستم خارج می شود فعال می شود. نتیجه مورد انتظار این است که کاربر در تمام سایت های راه دور ثبت شده از سیستم خارج شده و اقدامات خروج ورودی را می پذیرد.
صفحه باید بدون وقفه بارگیری شود و شبکه بین کاربر و سایت های راه دور برای اعمال آن قابل دسترسی باشد، زیرا این عملیات به کوکی های مرورگر متکی است (عمل توسط یک اسکریپت به صورت ناهمزمان در پاورقی صفحه پس از خروج اجرا می شود) .
ایجاد – هنگامی که کاربر ایجاد می شود فعال می شود. نتیجه مورد انتظار یک کاربر همگام سازی شده است که در تمام سایت های راه دور ثبت شده ایجاد شده است و اقدامات ایجاد ورودی را می پذیرد (برای هشدارها به رمز عبور، نقش ها و فراداده زیر مراجعه کنید).
به روز رسانی – هنگامی که یک کاربر به روز می شود، یا توسط خود کاربر یا کاربر دیگری فعال می شود. نتیجه مورد انتظار، اطلاعات کاربر به‌روز و همگام‌سازی شده در تمام سایت‌های ثبت‌شده راه دور است که اقدامات به‌روزرسانی دریافتی را می‌پذیرند (برای هشدارها به رمز عبور، نقش‌ها و فراداده زیر مراجعه کنید).
اگر کاربر در سایت راه دور وجود نداشته باشد و عملکرد Create ورودی فعال باشد، به جای آن یک کاربر همگام‌سازی شده ایجاد می‌شود.
حذف – زمانی که کاربر حذف می شود فعال می شود. نتیجه مورد انتظار حذف شدن کاربر در تمام سایت های راه دور ثبت شده است که اقدامات حذف ورودی را می پذیرند.
رمز عبور – هنگامی که کاربر رمز عبور خود را بازنشانی می کند فعال می شود. نتیجه مورد انتظار، بازنشانی رمز عبور برای کاربر در تمام سایت‌های ثبت‌شده راه دور است که اقدامات گذرواژه ورودی را می‌پذیرند.
این عمل همچنین تعیین می‌کند که آیا گذرواژه‌ها همگام‌سازی شده‌اند یا باید در طی اقدامات ایجاد و به‌روزرسانی نادیده گرفته شوند.
نقش ها – عملی را به خودی خود انجام نمی دهد. این عمل تعیین می‌کند که آیا نقش‌ها باید در طول اقدامات ایجاد و به‌روزرسانی، بسته به نقش‌های ورودی و خروجی منتقل‌شده مشخص شده همگام شوند یا نادیده گرفته شوند.
مگر اینکه گزینه «ادغام با نقش‌های موجود» انتخاب شود، نقش‌های کاربر با نقش‌های ورودی جایگزین می‌شوند.
اگر نقش های ورودی در سایت راه دور وجود نداشته باشند یا توسط سایت از راه دور پذیرفته نشوند، نادیده گرفته می شوند.
فراداده – بسته به کلیدهای فراداده ورودی خروجی و پذیرفته شده منتقل شده، زمانی فعال می شود که یک یا چند فراداده کاربر اضافه/ایجاد/حذف شود.
این اقدام به ویژه برای همگام سازی داده های کاربر اضافه شده توسط افزونه ها (مانند اطلاعات آدرس درافزونه وکامرس WooCommerce) مفید است.

عیب یابی

این کار نمی کند!
قبل از باز کردن یک موضوع جدید در انجمن پشتیبانی، لطفا موارد زیر را بررسی کنید:

URL های استفاده شده در تنظیمات WP Remote Users Sync دقیقاً با URL موجود در تنظیمات وردپرس شما مطابقت دارند: پروتکل (http در مقابل https) و زیر دامنه (www در مقابل غیر www) باید در سراسر صفحه یکسان باشند. همچنین ارزش بررسی گزینه home در جدول wp_options پایگاه‌های داده وردپرس را دارد، زیرا در برخی موارد محتوای Settings > General > WordPress Address (URL) توسط افزونه‌ها یا مضامین به‌طور سوءاستفاده‌ای بازنویسی می‌شود.
از صفحه پیوندهای ثابت هر سایت متصل (تنظیمات > پیوندهای دائمی) دیدن کنید.
هنگام آزمایش، گزارش‌ها را در سایت‌های محلی و راه دور فعال و بررسی کنید (WP Remote Users Sync > Activity Logs > Enable Logs) . سعی کنید هر گونه اختلاف را پیدا کنید و تنظیمات را تنظیم کنید
موضوعات حل شده انجمن پشتیبانی را بخوانید – ممکن است مشکل شما قبلاً در آنجا حل شده باشد
فقط در این صورت باید یک رشته پشتیبانی با حداکثر اطلاعات ممکن، از جمله گزارش‌ها (در صورت لزوم با اطلاعات مهم مبهم) باز کنید.

وضعیت کاربران پس از فعال سازی

پس از فعال کردن WP Remote Users Sync برای کاربران موجود چه اتفاقی می‌افتد؟

کاربران موجود دست نخورده باقی می مانند تا زمانی که یک اقدام ورودی فعال از یک سایت راه دور دریافت شود.
کاربرانی که در یک سایت وجود دارند و سایت دیگر وجود ندارند، همگام نمی شوند مگر اینکه کاربر واقعاً به روز شود و هر دو عملکرد ایجاد و به روز رسانی در سایتی که کاربر وجود ندارد فعال باشد.
برای پایگاه‌های داده کاربر موجود که نیاز به همگام‌سازی فوری دارند، افزونه WP Remote Users Sync ابزار واردات/صادرات کاربر را فراهم نموده است.

تدابیرامنیتی

چه تدابیر امنیتی وجود دارد؟

چندین لایه امنیتی برای محافظت از حریم خصوصی، یکپارچگی و صحت ارتباطات بین سایت‌های متصل وجود دارد:

رمزگذاری OpenSSL – همه ارتباطات با استفاده از الگوریتم AES-256-CBC با یک بردار اولیه سازی تصادفی ایجاد شده برای اطمینان از محرمانه بودن آنها رمزگذاری می شوند. توصیه می شود از یک کلید رمزگذاری اکشن قوی و تصادفی تولید شده استفاده کنید (مقدار یکسان در تمام وب سایت های متصل).
امضای HMAC – همه ارتباطات با استفاده از الگوریتم SHA256 با هش امضا می شوند تا از یکپارچگی آنها اطمینان حاصل شود. توصیه می شود از یک کلید امضای اقدام قوی و تصادفی تولید شده استفاده کنید (مقدار یکسان در تمام وب سایت های متصل).
نشانه های احراز هویت – همه ارتباطات به یک نشانه احراز هویت (به طور تصادفی تولید شده) متکی هستند. کنش‌های ناهمزمان (ورود و خروج به‌طور پیش‌فرض) از یک نشانه یک‌مصرف (غیر واقعی) استفاده می‌کنند، و کنش‌های همزمان از یک نشانه معتبر فقط برای مدت زمان محدود استفاده می‌کنند. توصیه می شود مدت زمان اعتبار Token Action را نسبتاً کوتاه نگه دارید (پیش فرض 1800 ثانیه یا 30 دقیقه است و باید در تمام وب سایت های متصل مدت زمان یکسانی داشته باشد).
تأیید IP – آدرس‌های IP با استفاده از متغیر محیط سرور REMOTE_ADDR تأیید می‌شوند که نمی‌توان آن را جعلی کرد (مگر اینکه سرورها یا زیرساخت‌های شبکه قبلاً به شدت در معرض خطر قرار گرفته باشند، در این صورت مشکلات بزرگ‌تری وجود دارد که باید نگران آن باشید).
برای همه اقدامات همزمان، چون در سمت سرور فعال می‌شوند، تأیید IP را می‌توان با استفاده از تنظیمات IP Whitelist با آدرس‌های IP برای مقایسه با آدرس IP راه دور فعال کرد.
به شدت توصیه می شود از تنظیمات IP Whitelist استفاده کنید.
به شدت توصیه می شود که فقط وب سایت های دارای https را متصل کنید.
با وجود این اقدامات امنیتی قوی، مدیران از این افزونه با مسئولیت خود استفاده می کنند. نویسنده هیچ مسئولیتی در قبال خسارات ناشی از استفاده از WP Remote Users Sync نخواهد داشت.

تاثیر بر اجراها

چه تاثیری بر اجراها دارد؟

WP Remote Users Sync برای همگام سازی کاربران باید با سایت های راه دور ارتباط برقرار کند. این بدان معنی است که تأثیر بر عملکرد به زمان پاسخگویی بین وب سایت های متصل بستگی دارد.

در بدترین حالت، هنگام انجام همگام سازی، سه درخواست به هر سایت راه دور ارسال می شود:

درخواست تمدید توکن که با شکست مواجه می‌شود (مسدود کردن: برای ذخیره توکن برای کاربر بعدی به پاسخ نیاز است، به‌طور پیش‌فرض 1 ثانیه تایم اوت می‌شود)
دومین درخواست تمدید توکن برای تلاش مجدد (مسدود کردن نیز؛ در صورتی که درخواست اول با شکست مواجه شد، تمدید توکن مجدداً یک بار امتحان می‌شود، به‌طور پیش‌فرض با وقفه زمانی 5 ثانیه‌ای)
درخواست اقدام (غیر مسدود کردن: پاسخ لازم نیست)
کاهش عملکرد با این واقعیت کاهش می‌یابد که توکن‌های اقدام (درخواست مسدود کردن) برای یک دوره زمانی برای اقدامات همزمان ذخیره می‌شوند، و با این واقعیت که اقدامات فقط زمانی اجرا می‌شوند که عملیاتی روی کاربران انجام شده باشد (نه در هر بارگذاری صفحه).
اقدامات ناهمزمان (ورود و خروج به طور پیش‌فرض) پرهزینه‌ترین هستند: خود عملیات مسدود نمی‌شوند، اما نشانه‌های اقدام آن‌ها باید هر بار از قبل تمدید شوند: nonces واقعی، نشانه‌های یکبار مصرف، به دلایل امنیتی هنگام ارسال اقدامات از مرورگر
اقدامات ناهمزمان همچنین در صورت بروز مشکلات شبکه، مانند بارگیری صفحه قطع شود یا تماس اسکریپت در مرورگر ناموفق باشد، به طور بالقوه بیشتر مستعد شکست هستند. این یک مبادله ضروری است زیرا این اقدامات به دستکاری کوکی های احراز هویت نیاز دارند.
به طور کلی، اجراها باید تا حدی تحت تأثیر قرار گیرند.

خوراک اصلی این است:

  • هر چه وب سایت ها بیشتر به هم متصل شوند، تأثیر نسبتاً منفی بر عملکرد بیشتر خواهد بود.
  • هرچه ارتباط بین سایت های راه دور بدتر باشد، تأثیر نسبتاً منفی روی عملکردها بیشتر است.

همگام سازی اطلاعات اضافی کاربر با افزونه های WooCommerce و Ultimate Member

اطلاعات اضافی کاربر چطور؟ (WooCommerce / Ultimate Member / افزونه دیگری که اطلاعات کاربر را اضافه می کند)


اطلاعات اضافی کاربر را می توان تا زمانی که در فراداده کاربر ذخیره می شود، خارج از جعبه همگام سازی کرد.
به عنوان مثال، به این معنی است که تمام آدرس و اطلاعات نمایه در ووکامرس را می توان همگام کرد، اما وضعیت سفارشات یا وضعیت اشتراک را نمی توان همگام کرد.
برای فعال کردن همگام‌سازی اطلاعات اضافی، از عملکرد Metadata به همراه کلیدهای فوق‌داده مشخص شده در قسمت‌های فوق‌داده منتقل شده و پذیرفته شده استفاده می‌شود.

همگام سازی پسورد کاربران

وضعیت پسوردهای کاربر چگونه است؟

  • تا زمانی که عمل رمز عبور فعال باشد (به ترتیب خروجی و ورودی) گذرواژه ها به طور خودکار همگام می شوند.
  • ارتباطات رمزگذاری شده، امضا شده، تایید شده توسط رمز و تایید IP می باشد تا فرآیند تا حد امکان ایمن شود.
  • گذرواژه ها هرگز در متن ساده مخابره یا ذخیره نمی شوند.
  • WP Remote User Sync با هر گذرواژه به روز رسانی افزونه به شرط رعایت استانداردهای وردپرس یکپارچه می شود.

عدم وجود کاربر در سایت راه دور

اگر کاربری برای همگام سازی در سایت راه دور وجود نداشته باشد چه؟

اگر اقدام ایجاد ورودی همراه با اقدام به‌روزرسانی ورودی فعال شود، کاربر پس از به‌روزرسانی کاربر در وب‌سایت راه دور همگام‌سازی می‌شود.
اگر اقدامات دیگری برای این کاربر قبل از آن اجرا شود (ورود، خروج، حذف، رمز عبور، فراداده)، هیچ اتفاقی نمی‌افتد و اگر کادر «فعال کردن گزارش‌ها» علامت زده شود، یک ورودی گزارش شکست عملکرد ثبت می‌شود.

*****

متن اصلی و متن ترجمه شده

WP Remote Users Sync به تغییرات مربوط به کاربران وردپرس گوش می دهد و “اقدامات” خروجی را به سایت های راه دور ثبت شده شلیک می کند. سایت‌های راه دور ثبت‌شده با WP Remote Users Sync نصب شده، سپس اقدامات دریافتی را می‌گیرند و بر اساس آن واکنش نشان می‌دهند.
هیچ “وب سایت اصلی” وجود ندارد: هر سایت به طور مستقل کار می کند، بسته به پیکربندی هر سایت، اقدام به شلیک و دریافت اقدامات می کند.
لیست اقدامات پشتیبانی شده به طور پیش فرض:
ورود به سیستم – زمانی که کاربر وارد می شود فعال می شود. نتیجه مورد انتظار این است که کاربر در تمام سایت های راه دور ثبت شده وارد شده و اقدامات ورود ورودی را می پذیرد.
صفحه باید بدون وقفه بارگیری شود و شبکه بین کاربر و سایت‌های راه دور قابل دسترسی باشد تا تأثیر بگذارد، زیرا این عملیات به کوکی‌های مرورگر متکی است (عمل توسط یک اسکریپت به صورت ناهمزمان در پاورقی صفحه پس از ورود انجام می‌شود) .
خروج – زمانی که کاربر از سیستم خارج می شود فعال می شود. نتیجه مورد انتظار این است که کاربر در تمام سایت های راه دور ثبت شده از سیستم خارج شده و اقدامات خروج ورودی را می پذیرد.
صفحه باید بدون وقفه بارگیری شود و شبکه بین کاربر و سایت های راه دور برای اعمال آن قابل دسترسی باشد، زیرا این عملیات به کوکی های مرورگر متکی است (عمل توسط یک اسکریپت به صورت ناهمزمان در پاورقی صفحه پس از خروج اجرا می شود) .
ایجاد – هنگامی که کاربر ایجاد می شود فعال می شود. نتیجه مورد انتظار یک کاربر همگام سازی شده است که در تمام سایت های راه دور ثبت شده ایجاد شده است و اقدامات ایجاد ورودی را می پذیرد (برای هشدارها به رمز عبور، نقش ها و فراداده زیر مراجعه کنید).
به روز رسانی – هنگامی که یک کاربر به روز می شود، یا توسط خود کاربر یا کاربر دیگری فعال می شود. نتیجه مورد انتظار، اطلاعات کاربر به‌روز و همگام‌سازی شده در تمام سایت‌های ثبت‌شده راه دور است که اقدامات به‌روزرسانی دریافتی را می‌پذیرند (برای هشدارها به رمز عبور، نقش‌ها و فراداده زیر مراجعه کنید).
اگر کاربر در سایت راه دور وجود نداشته باشد و عملکرد Create ورودی فعال باشد، به جای آن یک کاربر همگام‌سازی شده ایجاد می‌شود.
حذف – زمانی که کاربر حذف می شود فعال می شود. نتیجه مورد انتظار حذف شدن کاربر در تمام سایت های راه دور ثبت شده است که اقدامات حذف ورودی را می پذیرند.
رمز عبور – هنگامی که کاربر رمز عبور خود را بازنشانی می کند فعال می شود. نتیجه مورد انتظار، بازنشانی رمز عبور برای کاربر در تمام سایت‌های ثبت‌شده راه دور است که اقدامات گذرواژه ورودی را می‌پذیرند.
این عمل همچنین تعیین می‌کند که آیا گذرواژه‌ها همگام‌سازی شده‌اند یا باید در طی اقدامات ایجاد و به‌روزرسانی نادیده گرفته شوند.
نقش ها – عملی را به خودی خود انجام نمی دهد. این عمل تعیین می‌کند که آیا نقش‌ها باید در طول اقدامات ایجاد و به‌روزرسانی، بسته به نقش‌های ورودی و خروجی منتقل‌شده مشخص شده همگام شوند یا نادیده گرفته شوند.
مگر اینکه گزینه «ادغام با نقش‌های موجود» انتخاب شود، نقش‌های کاربر با نقش‌های ورودی جایگزین می‌شوند.
اگر نقش های ورودی در سایت راه دور وجود نداشته باشند یا توسط سایت از راه دور پذیرفته نشوند، نادیده گرفته می شوند.
فراداده – بسته به کلیدهای فراداده ورودی خروجی و پذیرفته شده منتقل شده، زمانی فعال می شود که یک یا چند فراداده کاربر اضافه/ایجاد/حذف شود.
این اقدام به ویژه برای همگام سازی داده های کاربر اضافه شده توسط افزونه ها (مانند اطلاعات آدرس در WooCommerce) مفید است.
How does it work
WP Remote Users Sync “listens” to changes related to WordPress users, and fires outgoing “actions” to registered remote sites. The registered remote sites with WP Remote Users Sync installed then catch incoming actions and react accordingly.
There is no “Master Website”: each site is working independently, firing and receiving actions depending on each site’s configuration.
List of supported actions by default:
Login – Fired when a user logs in. The expected result is a user logged in on all registered remote sites accepting incoming Login actions.
The page needs to load without interruption and the network between the user and the remote sites be accessible for it to take effect, because this operation relies on browser cookies (the action is fired by a script asynchronously in the footer of the page after login).
Logout – Fired when a user logs out. The expected result is a user logged out on all registered remote sites accepting incoming Logout actions.
The page needs to load without interruption and the network between the user and the remote sites be accessible for it to take effect, because this operation relies on browser cookies (the action is fired by a script asynchronously in the footer of the page after logout).
Create – Fired when a user is created. The expected result is a synchronised user created on all registered remote sites accepting incoming Create actions (see Password, Roles and Metadata below for caveats).
Update – Fired when a user is updated, either by the user themselves or another user. The expected result is up to date and synchronised user information on all registered remote sites accepting incoming Update actions (see Password, Roles and Metadata below for caveats).
If the user does not exist on the remote site and the incoming Create action is enabled, a synchronised user is created instead.
Delete – Fired when a user is deleted. The expected result is the user being deleted on all registered remote sites accepting incoming Delete actions.
Password – Fired when a user resets their password. The expected result is the password being reset for the user on all registered remote sites accepting incoming Password actions.
This action also determines whether the passwords are synchronised or should be ignored during Create and Update actions.
Roles – Does not fire an action of its own per se ; this action determines whether roles should be synchronised or ignored during Create and Update actions, depending on specified transferred outgoing and accepted incoming roles.
Unless the “Merge with existing roles” option is selected, the roles of the user are replaced with incoming roles.
If the incoming roles do not exist on or are not accepted by the remote site, they are ignored.
Metadata – Fired when one or several user metadata are added / created / deleted, depending on specified transferred outgoing and accepted incoming metadata keys.
This action is particularly useful to synchronise user data added by plugins (such as address information in WooCommerce)
این کار نمی کند!
قبل از باز کردن یک موضوع جدید در انجمن پشتیبانی وردپرس، لطفا موارد زیر را بررسی کنید:
URL های استفاده شده در تنظیمات WP Remote Users Sync دقیقاً با URL موجود در تنظیمات وردپرس شما مطابقت دارند: پروتکل (http در مقابل https) و زیر دامنه (www در مقابل غیر www) باید در سراسر صفحه یکسان باشند. همچنین ارزش بررسی گزینه home در جدول wp_options پایگاه‌های داده وردپرس را دارد، زیرا در برخی موارد محتوای Settings > General > WordPress Address (URL) توسط افزونه‌ها یا مضامین به‌طور سوءاستفاده‌ای بازنویسی می‌شود.
از صفحه پیوندهای ثابت هر سایت متصل (تنظیمات > پیوندهای دائمی) دیدن کنید.
هنگام آزمایش، گزارش‌ها را در سایت‌های محلی و راه دور فعال و بررسی کنید (WP Remote Users Sync > Activity Logs > Enable Logs) . سعی کنید هر گونه اختلاف را پیدا کنید و تنظیمات را تنظیم کنید
موضوعات حل شده انجمن پشتیبانی را بخوانید – ممکن است مشکل شما قبلاً در آنجا حل شده باشد
فقط در این صورت باید یک رشته پشتیبانی با حداکثر اطلاعات ممکن، از جمله گزارش‌ها (در صورت لزوم با اطلاعات مهم مبهم) باز کنید.
It’s not working!
Before opening a new thread in the WordPress Support forum, please check the following:
The URLs used in settings of WP Remote Users Sync exactly match the URL in your WordPress settings: the protocol (http vs. https) and the subdomain (www vs. non-www) must be the same across the board. It is also worth checking the home option in the wp_options table of the WordPress databases, because in some cases the content of Settings > General > WordPress Address (URL) gets abusively overwritten by plugins or themes.
Visit the permalinks page of each connected site (Settings > Permalinks)
Activate and check the logs on both local and remote sites when testing (WP Remote Users Sync > Activity Logs > Enable Logs) ; try to find any discrepancies and adjust the settings
Read the Resolved threads of the support forum – your issue might have already been addressed there
Only then should you open a support thread, with as much information as possible, including logs (with critical information obfuscated if necessary)
پس از فعال کردن WP Remote Users Sync برای کاربران موجود چه اتفاقی می‌افتد؟
کاربران موجود دست نخورده باقی می مانند تا زمانی که یک اقدام ورودی فعال از یک سایت راه دور دریافت شود.
کاربرانی که در یک سایت وجود دارند و سایت دیگر وجود ندارند، همگام نمی شوند مگر اینکه کاربر واقعاً به روز شود و هر دو عملکرد ایجاد و به روز رسانی در سایتی که کاربر وجود ندارد فعال باشد.
برای پایگاه‌های داده کاربر موجود که نیاز به همگام‌سازی فوری دارند، WP Remote Users Sync ابزار واردات/صادرات کاربر خود را فراهم می‌کند.
What happens to existing users after activating WP Remote Users Sync?
Existing users remain untouched, until an enabled incoming action is received from a remote site.
Users existing on one site and not the other will not be synchronised unless the user is actually updated AND both Create and Update actions are enabled on the site where the user does not exist.
For existing user databases in need of immediate synchronisation, WP Remote Users Sync provides its own user import/export tool.
چه تدابیر امنیتی وجود دارد؟
چندین لایه امنیتی برای محافظت از حریم خصوصی، یکپارچگی و صحت ارتباطات بین سایت‌های متصل وجود دارد:
رمزگذاری OpenSSL – همه ارتباطات با استفاده از الگوریتم AES-256-CBC با یک بردار اولیه سازی تصادفی ایجاد شده برای اطمینان از محرمانه بودن آنها رمزگذاری می شوند. توصیه می شود از یک کلید رمزگذاری اکشن قوی و تصادفی تولید شده استفاده کنید (مقدار یکسان در تمام وب سایت های متصل).
امضای HMAC – همه ارتباطات با استفاده از الگوریتم SHA256 با هش امضا می شوند تا از یکپارچگی آنها اطمینان حاصل شود. توصیه می شود از یک کلید امضای اقدام قوی و تصادفی تولید شده استفاده کنید (مقدار یکسان در تمام وب سایت های متصل).
نشانه های احراز هویت – همه ارتباطات به یک نشانه احراز هویت (به طور تصادفی تولید شده) متکی هستند. کنش‌های ناهمزمان (ورود و خروج به‌طور پیش‌فرض) از یک نشانه یک‌مصرف (غیر واقعی) استفاده می‌کنند، و کنش‌های همزمان از یک نشانه معتبر فقط برای مدت زمان محدود استفاده می‌کنند. توصیه می شود مدت زمان اعتبار Token Action را نسبتاً کوتاه نگه دارید (پیش فرض 1800 ثانیه یا 30 دقیقه است و باید در تمام وب سایت های متصل مدت زمان یکسانی داشته باشد).
تأیید IP – آدرس‌های IP با استفاده از متغیر محیط سرور REMOTE_ADDR تأیید می‌شوند که نمی‌توان آن را جعلی کرد (مگر اینکه سرورها یا زیرساخت‌های شبکه قبلاً به شدت در معرض خطر قرار گرفته باشند، در این صورت مشکلات بزرگ‌تری وجود دارد که باید نگران آن باشید).
برای همه اقدامات همزمان، چون در سمت سرور فعال می‌شوند، تأیید IP را می‌توان با استفاده از تنظیمات IP Whitelist با آدرس‌های IP برای مقایسه با آدرس IP راه دور فعال کرد.
به شدت توصیه می شود از تنظیمات IP Whitelist استفاده کنید.
به شدت توصیه می شود که فقط وب سایت های دارای https را متصل کنید.
با وجود این اقدامات امنیتی قوی، مدیران از این افزونه با مسئولیت خود استفاده می کنند. نویسنده هیچ مسئولیتی در قبال خسارات ناشی از استفاده از WP Remote Users Sync نخواهد داشت.
What security measures are in place?
Multiple layers of security are in place to protect the privacy, integrity and authenticity of communications between connected sites:
OpenSSL encryption – All communications are encrypted using the AES-256-CBC algorithm with a randomly generated Initialisation Vector to ensure their confidentiality ; it is recommended to use a strong, randomly generated Action Encryption Key (the same value on all the connected websites).
HMAC signature – All communications are signed with a hash using the SHA256 algorithm to ensure their integrity ; it is recommended to use a strong, randomly generated Action Signature Key (the same value on all the connected websites).
Authentication tokens – All communications rely on an authentication token (randomly generated). Asynchronous actions (Login & Logout by default) use a single-use token (true nonce), and synchronous actions use a token valid only for a limited period of time ; it is recommended to keep the Action Token Validity Duration relatively short (default is 1,800 seconds or 30 minutes, and must be the same duration on all the connected websites).
IP verification – IP addresses are verified using the REMOTE_ADDR server environment variable, which cannot be faked (unless the servers or the network infrastructure are already highly compromised, in which case there are bigger issues to worry about).
For all synchronous actions, because they are fired server-side, IP verification can be enabled using the IP Whitelist setting with IP addresses to be compared against the remote IP address.
It is HIGHLY recommended to use the IP Whitelist setting.
It is HIGHLY recommended to only connect https-enabled websites.
Despite these strong security measures, administrators use this plugin at their own risk ; the author will not be held liable for any damages resulting from the use of WP Remote Users Sync.
چه تاثیری بر اجراها دارد؟
WP Remote Users Sync برای همگام سازی کاربران باید با سایت های راه دور ارتباط برقرار کند.
این بدان معنی است که تأثیر بر عملکرد به زمان پاسخگویی بین وب سایت های متصل بستگی دارد.
در بدترین حالت، هنگام انجام همگام سازی، سه درخواست به هر سایت راه دور ارسال می شود:
درخواست تمدید توکن که با شکست مواجه می‌شود (مسدود کردن: برای ذخیره توکن برای کاربر بعدی به پاسخ نیاز است، به‌طور پیش‌فرض 1 ثانیه تایم اوت می‌شود)
دومین درخواست تمدید توکن برای تلاش مجدد (مسدود کردن نیز؛ در صورتی که درخواست اول با شکست مواجه شد، تمدید توکن مجدداً یک بار امتحان می‌شود، به‌طور پیش‌فرض با وقفه زمانی 5 ثانیه‌ای)
درخواست اقدام (غیر مسدود کردن: پاسخ لازم نیست)
کاهش عملکرد با این واقعیت کاهش می‌یابد که توکن‌های اقدام (درخواست مسدود کردن) برای یک دوره زمانی برای اقدامات همزمان ذخیره می‌شوند، و با این واقعیت که اقدامات فقط زمانی اجرا می‌شوند که عملیاتی روی کاربران انجام شده باشد (نه در هر بارگذاری صفحه).
اقدامات ناهمزمان (ورود و خروج به طور پیش‌فرض) پرهزینه‌ترین هستند: خود عملیات مسدود نمی‌شوند، اما نشانه‌های اقدام آن‌ها باید هر بار از قبل تمدید شوند: nonces واقعی، نشانه‌های یکبار مصرف، به دلایل امنیتی هنگام شلیک اقدامات از مرورگر
اقدامات ناهمزمان همچنین در صورت بروز مشکلات شبکه، مانند بارگیری صفحه قطع شود یا تماس اسکریپت در مرورگر ناموفق باشد، به طور بالقوه بیشتر مستعد شکست هستند. این یک مبادله ضروری است زیرا این اقدامات به دستکاری کوکی های احراز هویت نیاز دارند.
به طور کلی، اجراها باید تا حدی تحت تأثیر قرار گیرند.
غذای اصلی این است:
هر چه وب سایت ها بیشتر به هم متصل شوند، تأثیر نسبتاً منفی بر عملکرد بیشتر خواهد بود.
هرچه ارتباط بین سایت های راه دور بدتر باشد، تأثیر نسبتاً منفی روی عملکردها بیشتر است.
What is the impact on performances?
WP Remote Users Sync needs to communicate with the remote sites to actually synchronise users.
This means the impact on performances depends on the response time between the connected websites.
In the worst case scenario, three requests are made to EACH remote site when doing synchronisation:
A token renewal request that fails (blocking: a response is needed to save the token for later user, with a 1 second timeout by default)
A second token renewal request to try again (blocking as well ; token renewal is tried again only once in case the first request failed, with a 5 seconds timeout by default)
An action request (non-blocking: a response is not needed)
Performance degradations are mitigated by the fact that Action Tokens (blocking request) are saved for a period of time for synchronous actions, and by the fact that actions are fired ONLY when an operation has been performed on users (not on every page load).
Asynchronous actions (Login & Logout by default) are the most costly: the operations themselves are not blocking, but their Action Tokens have to be renewed beforehand each time: true nonces, single-use tokens, are necessary for security reasons when firing actions from the browser.
Asynchronous actions are also potentially more susceptible to failure in case of network issues, such as if the page load is interrupted or the enqueued script call failed in the browser ; this is a necessary trade-off as these actions require authentication cookie manipulations.
Overall, performances should be marginally impacted.
The main takeaway is this:
The more websites are connected, the bigger the relatively negative impact on performances.
The worse the connection between the remote sites is, the bigger the relatively negative impact on performances.
اطلاعات اضافی کاربر چطور؟ (WooCommerce / Ultimate Member / افزونه دیگری که اطلاعات کاربر را اضافه می کند)
اطلاعات اضافی کاربر را می توان تا زمانی که در فراداده کاربر ذخیره می شود، خارج از جعبه همگام سازی کرد.
به عنوان مثال، به این معنی است که تمام آدرس و اطلاعات نمایه در ووکامرس را می توان همگام کرد، اما وضعیت سفارشات یا وضعیت اشتراک را نمی توان همگام کرد.
برای فعال کردن همگام‌سازی اطلاعات اضافی، از عملکرد Metadata به همراه کلیدهای فوق‌داده مشخص شده در قسمت‌های فوق‌داده منتقل شده و پذیرفته شده استفاده می‌شود.
What about extra user information? (WooCommerce / Ultimate Member / other plugin adding user information)
Extra user information can be synchronised too out of the box as long as they are stored in the user metadata.
For example, it means all the address and profile information in WooCommerce can be synchronised, but not the orders status or subscription status.
To enable extra information synchronisation, the Metadata action is used along with specified metadata keys in the transferred and accepted metadata fields.
پسوردهای کاربر چطور؟
تا زمانی که عمل رمز عبور فعال باشد (به ترتیب خروجی و ورودی) گذرواژه ها به طور خودکار همگام می شوند.
ارتباطات رمزگذاری شده، امضا شده، تایید شده توسط رمز و تایید IP می باشد تا فرآیند تا حد امکان ایمن شود.
گذرواژه ها هرگز در متن ساده مخابره یا ذخیره نمی شوند.
WP Remote User Sync با هر گذرواژه به روز رسانی افزونه به شرط رعایت استانداردهای وردپرس یکپارچه می شود.
What about user passwords?
Passwords are automatically synchronised as long as the Password action is enabled (outgoing and incoming respectively).
Communications are encrypted, signed, token-validated and IP-validated to make the process as secure as possible.
Passwords are NEVER communicated or stored in plain text.
WP Remote User Sync integrates with any plugin updating passwords provided they do so respecting WordPress standards.
اگر کاربری برای همگام سازی در سایت راه دور وجود نداشته باشد چه؟
اگر اقدام ایجاد ورودی همراه با اقدام به‌روزرسانی ورودی فعال شود، کاربر پس از به‌روزرسانی کاربر در وب‌سایت راه دور همگام‌سازی می‌شود.
اگر اقدامات دیگری برای این کاربر قبل از آن اجرا شود (ورود، خروج، حذف، رمز عبور، فراداده)، هیچ اتفاقی نمی‌افتد و اگر کادر «فعال کردن گزارش‌ها» علامت زده شود، یک ورودی گزارش شکست عملکرد ثبت می‌شود.
What if the user to synchronise does not exist on the remote site?
If the incoming Create action is enabled along with the incoming Update action, the user will be synchronised on the remote website upon user update.
If other actions for this user are fired before that (Login, Logout, Delete, Password, Metadata), nothing will happen, and an action failure log entry will be recorded if the “Enable Logs” box is checked.