قبل
صفحهای ۴۰۴ میدهد و هیچجای پیشخوان نمیگوید کدام قانون آن را برداشته.
بعد
فهرست قوانین به ترتیب تطابق، با نام برنده، نام بازنده، یک آدرس نمونه، و نامکی که باید عوض شود.
بیشتر ۴۰۴ های بیدلیل یک علت دارند: وردپرس قوانین بازنویسی را به ترتیب امتحان میکند و روی اولین تطابق میایستد، و هیچ صفحهای در پیشخوان این ترتیب را نشان نمیدهد. این افزونه ترتیب را نشان میدهد، تداخلها را با نام قانون برنده و بازنده و یک آدرس نمونه توضیح میدهد، و میگوید کدام نامک را عوض کنید. نیمه دوم برای رساندن کار استیجینگ به سایت اصلی است: خروجی امضاشده تنظیمات و همگامسازی گزینشی محتوا، بهجای کپی کردن کل دیتابیس روی سفارشهایی که بعد از گرفتن آن کپی ثبت شدهاند.
وردپرس یک درخواست را با فهرستی از قوانین بازنویسی تطبیق میدهد، به ترتیب، و روی اولین قانونی که جور دربیاید میایستد. همین یک جمله پشت بیشتر ۴۰۴ های بیدلیل است: قانونی که زودتر ثبت شده آدرسی را برمیدارد که قرار بوده قانون بعدی به آن جواب بدهد، و قانون دوم بیصدا از کار میافتد. افزونهها مدام قانون تازه اضافه میکنند و هیچ صفحهای در پیشخوان این ترتیب را نشان نمیدهد، بنابراین کسی که دنبال دلیل ۴۰۴ میگردد چیزی برای نگاه کردن ندارد.
تب Rules همان فهرست را به ترتیب تطابق نشان میدهد و تداخلها را بالای آن میگذارد. تشخیص واقعی است نه نظری: افزونه از الگوی قانون بازنده آدرسهایی میسازد که آن قانون باید به آنها جواب میداد، بعد بررسی میکند آیا قانونی زودتر آنها را برمیدارد یا نه. نتیجه چهار چیز است — کدام قانون برنده میشود، کدام بازنده، یک آدرس نمونه، و معمولاً یک نامک که باید عوض شود. منبع هر قانون از روی query var هایی که میگذارد حدس زده میشود و در رابط هم بهعنوان حدس برچسب میخورد، نه واقعیت.
مدیر ریدایرکت ۳۰۱، ۳۰۲، ۳۰۷ و ۳۰۸ را میگیرد و بهصورت پیشفرض فقط درخواستهایی را میبیند که وردپرس نتوانسته به آنها جواب بدهد، تا صفحهای که واقعاً وجود دارد پوشانده نشود. الگوهای باقاعده پیش از ذخیره کامپایل و زمانسنجی میشوند و اگر روی ورودی آزمایشی بیش از ۵۰ میلیثانیه بگیرند رد میشوند — چون مسئله فقط الگو نیست، ورودی است: این الگو روی هر درخواست اجرا میشود و هر بازدیدکنندهای میتواند آدرس طولانی بفرستد. مقصد بیرون از دامنه هم رد میشود مگر میزبان را عمداً مجاز کنید، چون مدیر ریدایرکتی که هر مقصدی را بپذیرد یک Open Redirect است.
نیمه دوم برای انتقال کار بین دو سایت است. روش رایج، کپی کردن کل دیتابیس استیجینگ روی سایت اصلی است — که هر سفارشی را که از زمان گرفتن آن کپی ثبت شده از بین میبرد. اینجا انتقال گزینشی است: خروجی امضاشده تنظیمات برای المنتور، ACF، Rank Math، Yoast، ووکامرس و خود وردپرس، و همگامسازی برگه، نوشته، قالب المنتور، گروه فیلد ACF، منو و کاتالوگ محصول. اجرای آزمایشی پیشفرض است، هر ایمپورت اول پیشنمایش میشود و پنج تای آخر قابل بازگشت است، و گزارش هر اجرا میگوید چه چیزی رد شد و چرا.
چون مشتری در این افزونه به دو سایت زنده اجازه میدهد به هم داده بنویسند، امنیت انتقال خودِ محصول است. هر درخواست بین دو سایت با HMAC-SHA256 امضا میشود و امضا متد، مسیر، رشته پرسوجو، زمان، nonce یکبارمصرف و هش بدنه را میپوشاند؛ حذف هر کدام یک حمله مشخص باز میکند. اما امضا فقط میگوید چه کسی نوشته، نه اینکه محتوا بیخطر است — سایتی که خودش هک شده هر چیزی را با کلید معتبر امضا میکند. برای همین دو فهرست ممنوعه بیرون از دسترس هر فیلتری وجود دارد: یکی که هرگز نمیگذارد active_plugins، siteurl یا کلیدهای احراز هویت نوشته شوند، و یکی که سفارش، مرجوعی، اشتراک، کوپن، مشتری، کاربر، سشن و توکن پرداخت را هرگز منتقل نمیکند.
قبل
صفحهای ۴۰۴ میدهد و هیچجای پیشخوان نمیگوید کدام قانون آن را برداشته.
بعد
فهرست قوانین به ترتیب تطابق، با نام برنده، نام بازنده، یک آدرس نمونه، و نامکی که باید عوض شود.
قبل
تنها راه رساندن تنظیمات استیجینگ به سایت اصلی، کپی کردن کل دیتابیس است — یعنی پاک شدن هر سفارشی که در این فاصله ثبت شده.
بعد
فقط همان چیزی میرود که تیک زدهاید، با پیشنمایش و اجرای آزمایشی. سفارش، مشتری، کاربر و توکن پرداخت در کد کنار گذاشته شدهاند.
قبل
مدیر ریدایرکتی که هر مقصد و هر الگویی را قبول کند، هم Open Redirect است هم راهی برای کند کردن سایت.
بعد
الگو پیش از ذخیره کامپایل و زمانسنجی میشود، و مقصد بیرون از دامنه رد میشود مگر میزبان را عمداً مجاز کنید.
اولین جایی که باید نگاه کنید. اگر چیزی زیر Conflicts فهرست شده، همانها آدرسهایی هستند که روی سایت شما بدون دلیل ظاهری ۴۰۴ میدهند.
هر تداخل میگوید کدام قانون برنده میشود، کدام هرگز اجرا نمیشود، و کدام نامک را عوض کنید. بعد Flush بزنید و دوباره نگاه کنید — هر ۳۰ ثانیه یکبار مجاز است.
روی یکی رمز مشترک بسازید و همان را در دیگری بچسبانید، Test بزنید، Compare بگیرید، اول Dry run و بعد انتقال. هر اجرا در گزارش میماند.
سایتهایی که نوع پست و تاکسونومی را از چند افزونه میگیرند · سایتهایی که بعد از فعال کردن یک افزونه، بخشی از آدرسهایشان ۴۰۴ شده · فروشگاههایی که کاتالوگ و برگهها را اول روی استیجینگ میسازند · تیمهایی که تنظیمات المنتور و ACF را دستی دو بار وارد میکنند · آژانسهایی که سایت مشتری را با یک نسخه استیجینگ نگه میدارند · هر کسی که بعد از تغییر ساختار پیوند یکتا نمیداند کدام قانون کدام را پوشانده · تیمهایی که اجازه ندارند دیتابیس سایت اصلی را با کپی استیجینگ بازنویسی کنند.
هر دو نیمه داخل خود افزونهاند. بدون Composer در زمان اجرا، بدون سرویس ابری، و بدون jQuery.
فهرست از جدول مسیریابی ذخیرهشده خوانده میشود، نه از تولید دوباره — چون همان ذخیرهشده است که هنگام تطبیق واقعاً استفاده میشود، و وقتی کسی دنبال دلیل یک ۴۰۴ میگردد همین تفاوت اهمیت دارد. منبع هر قانون از روی query var هایی که میگذارد حدس زده میشود و بهعنوان حدس برچسب میخورد.
افزونه از الگوی قانون بازنده آدرسهایی میسازد که آن قانون باید به آنها جواب میداد و بررسی میکند کدام قانون زودتر آنها را برمیدارد. هر یافته درجه اهمیت دارد: زیاد یعنی یک نوع پست یا تاکسونومی کاملاً از دسترس خارج شده. پویش سنگین است، پس بهصورت پیشفرض روی ۴۰۰ قانون محدود شده.
بعد از ثبت یک نوع پست تازه یا تغییر ساختار پیوند یکتا لازم است. روی سایت بزرگ چند ثانیه طول میکشد و دکمه هم آدم را به کلیک پشتسرهم دعوت میکند، پس هر ۳۰ ثانیه یکبار اجازه دارد. فایل htaccess دستنخورده میماند؛ افزونهای که پیکربندی سرور را بیاجازه بنویسد راه خوبی برای از کار انداختن سایت است.
۳۰۱، ۳۰۲، ۳۰۷ و ۳۰۸، با گروههای $1 در مقصد وقتی از عبارت باقاعده استفاده کنید. بهصورت پیشفرض فقط روی درخواستهایی اجرا میشود که وردپرس نتوانسته به آنها جواب بدهد، پس صفحهای که واقعاً هست هرگز پوشانده نمیشود. دکمه Test میگوید یک ریدایرکت تطابق پیدا میکند یا نه و دقیقاً کجا میفرستد.
هر الگو کامپایل میشود و روی ورودیهای آزمایشی طولانی اجرا میشود؛ اگر به سقف backtracking بخورد یا بیش از ۵۰ میلیثانیه بگیرد، با توضیح رد میشود بهجای اینکه روی هر درخواست سایت را کند کند. delimiter و flag با خود افزونه است تا الگو نتواند مال خودش را همراه بیاورد، و جایگزینی $1 با str_replace ساده انجام میشود نه preg_replace، تا محتوای یک گروه گرفتهشده نتواند در نتیجه دخالت کند.
کسی که بتواند ریدایرکت اضافه کند، در حالت عادی میتواند بازدیدکنندگان شما را با نشانی دامنه خودتان به صفحه خودش بفرستد. مقصدهای بیرونی رد میشوند مگر میزبان را با فیلتر hd_ras_allowed_redirect_hosts عمداً مجاز کنید، و مقصدهای بدون پروتکل جداگانه بررسی میشوند چون همان راه معمول رد شدن از چنین بررسیای هستند.
هفت گروه: پایه سایت، المنتور، ACF، Rank Math، Yoast، تنظیمات نمایشی ووکامرس و خود این افزونه. افزونه تشخیص میدهد کدامها روی این سایت هستند و بقیه را نشان نمیدهد. ورودی اول امضا را بررسی میکند و تازه بعد فایل را تجزیه میکند — تجزیه کردن چیزی که هنوز تأیید نشده خودش یک سطح حمله است.
مقادیری که نامشان بوی کلید و رمز میدهد با AES-256-GCM رمز میشوند و هر کاربرد کلید جدا خودش را از HKDF میگیرد. اگر فایل قرار است روی سایتی باز شود که هرگز با این سایت جفت نشده، عبارت عبور بگذارید: کلید با PBKDF2-SHA256 و ۳۱۰٬۰۰۰ دور ساخته میشود و حداقل ۱۲ کاراکتر لازم است، چون حدس زدن عبارت عبور آفلاین انجام میشود و محدودیتی ندارد.
پیشنمایش دقیقاً میگوید چه چیزی عوض میشود و تا نگیرید دکمه اعمال فعال نمیشود. اگر فایل بین پیشنمایش و تأیید عوض شود افزونه متوجه میشود و پیشنمایش تازه میخواهد. پنج ایمپورت آخر قابل بازگشتاند، و بازگشت هم از همان فهرست مجاز عبور میکند.
این سایت را با سایت جفتشده مقایسه میکند و فقط چیزی را میآورد که فرق دارد: برگه، نوشته، قالب المنتور، گروه فیلد ACF، منو و کاتالوگ محصول. مقایسه با مانیفست و اثر انگشت انجام میشود، پس همگامسازی سایتی که تغییر نکرده یک پاسخ کوچک هزینه دارد نه یک انتقال کامل. اجرای آزمایشی پیشفرض است.
اولی هرگز نمیگذارد active_plugins، template، siteurl، home، users_can_register، کلیدها و salt های احراز هویت و هویت خود افزونه از یک فایل تنظیمات نوشته شوند. دومی هرگز سفارش، مرجوعی، اشتراک، کوپن، مشتری، کاربر، سشن، توکن پرداخت و هر پستی با وضعیت wc- را منتقل نمیکند. تاکسونومی product_visibility هم بیرون است، چون وضعیت موجودی ووکامرس آنجا نگه داشته میشود.
امضای HMAC-SHA256 روی نسخه طرح، متد، مسیر، زمان، nonce و هش بدنه. اختلاف ساعت بیش از پنج دقیقه رد میشود، nonce ها یکبارمصرفاند و بهصورت اتمیک ثبت میشوند تا دو کپی همزمان از یک درخواست بازپخششده هر دو موفق نشوند، و مقایسه امضا با زمان ثابت است. nonce فقط بعد از درست درآمدن امضا مصرف میشود، وگرنه هر کسی میتوانست با حدس زدن nonce های فرستنده معتبر را بسوزاند.
هر آدرسی که افزونه به آن وصل میشود پیش از اتصال بررسی میشود: loopback، شبکههای خصوصی و سرویسهای metadata ابری رد میشوند. نام میزبان پیش از تصمیم resolve میشود — چون evil.example.com میتواند به 127.0.0.1 اشاره کند — و اتصال روی همان آدرسی pin میشود که بررسی شده، تا بین بررسی و اتصال جای نام عوض نشود.
هر اجرای همگامسازی و هر ایمپورت ثبت میشود، با شماره اجرا و نتیجه هر شیء. چیزهایی که عمداً رد شدهاند هم با دلیلشان میآیند — پستی که نامک ندارد، نوعی که در فهرست ممنوعه است، شیئی که با طرف مقابل یکسان بوده. گزارشی که فقط موفقیتها را نشان بدهد، همان چیزی را پنهان میکند که باید دیده شود.
همه در docs/hooks.md با مثال. چهار فیلتری که رفتار را باز میکنند — hd_ras_allow_private_url، hd_ras_update_hosts، hd_ras_allowed_redirect_hosts و hd_ras_option_groups — همانجا با هزینهشان علامت خوردهاند، تا کسی آنها را بدون دانستن معاملهاش روشن نکند.
ترجمه کامل fa_IR همراه افزونه است و پیشخوان وقتی is_rtl() باشد admin-rtl.css را بار میکند. الگو، آدرس و کلید با dir="ltr" علامت خوردهاند تا در صفحه راستبهچپ برعکس خوانده نشوند. تبها معنای ARIA دارند و با کلید جهتدار جابهجا میشوند. بدون jQuery — جاوااسکریپت وانیلا ES6، فقط روی صفحه خود افزونه.
| امکان | توضیح | دارد |
|---|---|---|
| قوانین به ترتیب تطابق | از جدول مسیریابی ذخیرهشده خوانده میشود، نه از تولید دوباره | |
| حدس منبع هر قانون | از روی query var هایی که میگذارد، و در رابط هم بهعنوان حدس برچسب میخورد | |
| تشخیص تداخل با ساختن آدرس | آدرسهایی که قانون بازنده باید جواب میداد ساخته و امتحان میشوند | |
| درجه اهمیت هر تداخل | زیاد یعنی یک نوع پست یا تاکسونومی کاملاً از دسترس خارج شده | |
| یک آدرس نمونه در هر تداخل | بهعلاوه نامکی که باید عوض شود؛ نمونهها ساختهشدهاند و همینطور برچسب خوردهاند | |
| سقف پویش تداخل | ۴۰۰ قانون بهصورت پیشفرض، با فیلتر hd_ras_conflict_scan_limit | |
| Flush با فاصله اجباری | هر ۳۰ ثانیه یکبار، و بدون دست زدن به فایل htaccess | |
| ۳۰۱، ۳۰۲، ۳۰۷ و ۳۰۸ | با گزینه حساس بودن به بزرگی و کوچکی حروف | |
| گروههای $1 در مقصد | با str_replace ساده و از شماره بزرگ به کوچک، نه با preg_replace | |
| اعتبارسنجی الگو پیش از ذخیره | سقف ۵۰ میلیثانیه روی ورودی آزمایشی و ۲۰۰۰ کاراکتر طول | |
| delimiter و flag با افزونه است | الگو نمیتواند مال خودش را همراه بیاورد | |
| حلقه رد میشود، زنجیره گزارش | زنجیره گاهی عمدی است، حلقه هیچوقت | |
| دکمه Test پیش از اعتماد | میگوید تطابق پیدا میکند یا نه، و دقیقاً کجا میفرستد | |
| فقط روی درخواستهای بیپاسخ | پیشفرض، تا صفحهای که واقعاً هست پوشانده نشود | |
| مقصد بیرونی رد میشود | مگر میزبان با فیلتر hd_ras_allowed_redirect_hosts عمداً مجاز شود | |
| هفت گروه تنظیمات | پایه سایت، المنتور، ACF، Rank Math، Yoast، ووکامرس و خود این افزونه | |
| AES-256-GCM روی مقادیر حساس | با کلید جدا برای هر کاربرد، مشتقشده از HKDF | |
| کلید عبارت عبور با PBKDF2 | SHA-256 با ۳۱۰٬۰۰۰ دور، و حداقل ۱۲ کاراکتر | |
| امضا پیش از تجزیه فایل | تجزیه کردن چیزی که هنوز تأیید نشده خودش یک سطح حمله است | |
| فهرست مجاز، دوباره پیش از هر نوشتن | امضا میگوید چه کسی نوشته، نه اینکه محتوا امن است | |
| پیشنمایش و بازگشت پنج ایمپورت آخر | فایل عوض شود، پیشنمایش تازه لازم میشود | |
| شش مجموعه محتوا | برگه، نوشته، قالب المنتور، گروه فیلد ACF، منو و کاتالوگ محصول | |
| تطبیق با نوع پست و نامک | هرگز با شناسه عددی؛ پستی که نامک ندارد رد میشود | |
| اثر انگشت برای تشخیص تفاوت | موجودی انبار و تعداد فروش عمداً بیرون از آن هستند | |
| اجرای آزمایشی پیشفرض | گزارش میدهد بدون اینکه چیزی بنویسد | |
| مقایسه با مانیفست | چهار عدد: فقط آنجا، متفاوت، یکسان، فقط اینجا | |
| امضای HMAC-SHA256 روی هر درخواست | متد، مسیر، زمان، nonce و هش بدنه، با پنجره پنج دقیقهای | |
| nonce یکبارمصرف و اتمیک | و فقط بعد از درست درآمدن امضا مصرف میشود | |
| دسترسی جدا برای هر جفتشدگی | جفتشدگی فقط خواندنی نمیتواند چیزی اینجا بنویسد | |
| نگهبان آدرس خروجی | رد loopback، شبکه خصوصی و metadata ابری، با resolve پیش از تصمیم و pin روی همان آدرس | |
| رمزها فقط نوشتنیاند | کلید خصوصی و رمز سایت در گزینه جدا، بیرون از چیزی که خروجیگیر میخواند |
| مورد | حداقل |
|---|---|
| وردپرس | ۶.۲ به بالا، تستشده تا ۶.۸ |
| PHP | ۸.۰ تا ۸.۳ |
| OpenSSL | برای رمزنگاری مقادیر حساس در فایل تنظیمات لازم است. برای امضای فایل، اگر نباشد افزونه به تأیید با رمز مشترک برمیگردد و در رابط میگوید کدام روش در کار است. کانال همگامسازی به آن نیازی ندارد. |
| سایت دوم | فقط برای همگامسازی: دو سایت با همین افزونه، یک رمز مشترک یکسان، و دسترسی REST بین آنها. بازرس مسیرها و مدیر ریدایرکت روی یک سایت تنها هم کار میکنند. |
| دسترسی | manage_options برای دیدن صفحه و هر نوشتن، با فیلتر hd_ras_manage_capability قابل تغییر |
برای سایتی که چند افزونه دارد و هر کدام نوع پست، تاکسونومی یا قانون بازنویسی خودش را ثبت میکند — همانجایی که یک ۴۰۴ بیدلیل ظاهر میشود و کسی نمیداند کدام قانون آن آدرس را برداشته. مخاطب دوم تیمی است که روی استیجینگ کار میکند و باید نتیجه را به سایت اصلی برساند بدون اینکه دیتابیس اصلی را با یک کپی قدیمی بازنویسی کند. برای سایتی با ده صفحه و بدون نوع پست سفارشی، حرف زیادی ندارد.
بازرس فقط وقتی کار میکند که صفحهاش را باز کنید؛ روی درخواستهای عادی چیزی نمیسنجد. مدیر ریدایرکت روی template_redirect اجرا میشود و بهصورت پیشفرض فقط برای درخواستهایی که وردپرس نتوانسته جواب بدهد، پس درخواستی که به یک صفحه واقعی میخورد اصلاً به آن نمیرسد؛ فهرست ریدایرکتهای فعال هم کش میشود. الگوهای گران هم اجازه ذخیره شدن ندارند، که دقیقاً برای همین است. ماژول خاموش اصلاً بارگذاری نمیشود.
چون از روی الگوی قانون بازنده آدرس ساخته میشود و همان آدرسها در برابر فهرست کامل امتحان میشوند: اگر قانونی که بالاتر است اول آنها را بردارد، تداخل واقعاً وجود دارد و آدرس نمونهاش را میبینید. دو چیز را هم پنهان نمیکنیم: منبع هر قانون یک حدس است که از روی query var ها زده میشود و همینطور برچسب خورده، و آدرسهای نمونه هم ساختهشدهاند نه ترافیک واقعی. ضمناً فهرست از جدول مسیریابی ذخیرهشده خوانده میشود؛ اگر کهنه به نظر میرسد، همین نکته است — Flush بزنید و مقایسه کنید.
دو دلیل رایج دارد. یکی backtracking بیش از حد: الگو پیش از ذخیره روی ورودیهای طولانی امتحان میشود و اگر بیش از ۵۰ میلیثانیه بگیرد یا به سقف backtracking برسد رد میشود. مقصر معمولاً quantifier تودرتوست؛ (.+)+ آن چیزی نیست که میخواستید، (.+) هست. دلیل دوم این است که delimiter نوشتهاید: ^/old/(.*)$ درست است، نه نسخهای که با ~ شروع و تمام شود. این سختگیری برای این است که این الگو روی هر درخواست اجرا میشود و هر بازدیدکنندهای میتواند یک آدرس هشت کیلوبایتی بفرستد.
چون مدیر ریدایرکتی که هر مقصدی را بپذیرد یک Open Redirect است: هر کسی که بتواند یک ریدایرکت اضافه کند، میتواند بازدیدکنندگان شما را با نشانی دامنه شما به صفحه خودش بفرستد. اگر واقعاً عمدی است، میزبان را با فیلتر hd_ras_allowed_redirect_hosts اضافه کنید — یعنی تصمیم در کد ثبت میشود، نه در یک فیلد متنی.
نه. سفارش، مرجوعی، اشتراک، کوپن، مشتری، کاربر، سشن و توکن پرداخت در کد کنار گذاشته شدهاند و هیچ تنظیم یا فیلتری به آن فهرست نمیرسد. دلیلش این است: استیجینگ کپی یک لحظه گذشته است و هر چیز تراکنشی که از آن زمان روی سایت اصلی اتفاق افتاده فقط آنجا وجود دارد؛ نوشتن نسخه استیجینگ روی آن دو طرف را ادغام نمیکند، یکی را از بین میبرد. به همین دلیل موجودی انبار و تعداد فروش هم در اثر انگشت مقایسه نیستند و منتقل نمیشوند.
این دقیقاً همان چیزی است که امضا حل نمیکند: امضا فقط میگوید فایل یا درخواست را چه کسی نوشته. برای همین دو فهرست ممنوعه جداگانه وجود دارد که بعد از تأیید امضا و دوباره پیش از هر نوشتن بررسی میشوند و هیچ فیلتری به آنها نمیرسد — یکی جلوی active_plugins، siteurl، home، users_can_register و کلیدهای احراز هویت را میگیرد، یکی داده تراکنشی را. توصیه عملی هم این است: روی سایت اصلی، جفتشدگی با استیجینگ را فقط خواندنی بگذارید؛ آنوقت استیجینگ میتواند مقایسه کند ولی نمیتواند چیزی بنویسد.
تا پنج دقیقه اختلاف پذیرفته میشود و بیشتر از آن رد میشود، با پیامی که همین را میگوید. پنجره را عمداً باز نگذاشتهایم، چون پنجره پهن همان چیزی است که یک درخواست ضبطشده را قابل بازپخش میکند. اگر این خطا را دیدید، NTP یکی از دو سرور را بررسی کنید.
برای رمزنگاری مقادیر حساس در فایل تنظیمات، بله. برای امضای فایل، اگر OpenSSL باشد از آن استفاده میشود و اگر نباشد افزونه به تأیید فایل با رمز مشترک برمیگردد و در رابط میگوید کدام روش در کار است — نه اینکه بیصدا ضعیفتر عمل کند. کانال همگامسازی بین دو سایت به هیچکدام نیاز ندارد؛ آن HMAC است.
هر دو نیمه، هر دو فعال: فهرست قوانین به ترتیب تطابق، تشخیص تداخل با آدرس نمونه، Flush امن، و مدیر ریدایرکت کامل با اعتبارسنجی الگو، تشخیص حلقه و زنجیره و دکمه Test؛ بهعلاوه نیمه انتقال، یعنی خروجی و ورودی امضاشده تنظیمات، رمزنگاری مقادیر حساس، و همگامسازی گزینشی محتوا با استیجینگ. برای همگامسازی، همین بسته باید روی هر دو سایت نصب باشد، چون سمت پاسخدهنده هم بخشی از همین افزونه است.
نه. افزونه Autoloader کوچک خودش را دارد و در زمان اجرا وابستگی بیرونی ندارد. تنها آدرسی که افزونه به آن وصل میشود همان سایت جفتشدهای است که خودتان تعیین میکنید؛ نه بررسی لایسنس دارد و نه بهروزرسان داخلی. بهروزرسانیها از راه ژاکت میرسد.
هیچچیز حذف نمیشود مگر گزینه «حذف همه دادهها هنگام حذف افزونه» را روشن کرده باشید، که پیشفرض خاموش است. تنها استثنا نشانههای بازپخش است؛ آنها مقادیر یکبارمصرفی هستند که برای هیچکس معنایی ندارند. غیرفعال کردن افزونه هم رویدادهای زمانبندیشده را پاک میکند و جدول مسیریابی را بدون قوانین این افزونه از نو میسازد، ولی به داده ذخیرهشده دست نمیزند.
رفع باگ افزونه، راهنمایی نصب و جفت کردن دو سایت، و کمک برای خواندن تداخلها و تصمیم گرفتن درباره اینکه کدام نامک عوض شود. بازطراحی ساختار پیوند یکتای سایت، اصلاح افزونهای که قانون متداخل را ثبت کرده، و مهاجرت کامل سایت خارج از پشتیبانی و با توافق جداگانه است.