کنترل درخواست های وردپرس
توسط Ali Khaleghi
وبسایت
☆☆☆☆☆
0.0
4+ نصب فعال
نسخه 1.1.4 |
آخرین بهروزرسانی: 2026/03/17
توضیحات افزونه
کنترل و مسدود کردن تمام درخواستهای خروجی شبکه از نصب وردپرس شما.
دامنههای مجاز (Whitelist) را مشخص کنید، درخواستهای مسدودشده را ثبت (لاگ) کنید و از سایت خود در برابر اتصالهای خارجی ناخواسته محافظت کنید.
سوالات متداول
پرسشهای متداول
سوالات عمومی
Q: کنترل درخواستهای WP چیست؟
A: کنترل درخواستهای WP تمام درخواستهای HTTP خروجی از نصب وردپرس شما را کنترل و مسدود میکند. یک آتشفشان ارائه میدهد که میتواند دامنههای معتبر را مدیریت کرده و درخواستهای مسدود شده را برای حسابرسی امنیتی ذخیره کند.
Q: آیا این افزونه برای استفاده در سایت تولید مناسب است؟
A: بله، این افزونه برای تولید آماده است با اقدامات امنیتی مناسب شامل تأیید غیرفعال، بررسی قابلیتها، صحیحسازی ورودی و پنهانسازی خروجی.
Q: آیا این افزونه سایت وردپرس من را خراب میکند؟
A: اگر به درستی پیکربندی شده باشد با لیست سفید مناسب، خیر. افزونه طوری طراحی شده که درخواستهای داخلی و سرویسهای خارجی معتبر را در صورت وجود در لیست سفید مجاز کند.
Q: آیا میتوانم از این برای مسدود کردن بروزرسانی افزونهها استفاده کنم؟
A: بله، میتوانید "مسدود کردن بروزرسانیهای وردپرس.org" را فعال کنید که از بررسی بروزرسانی خودکار از وردپرس.org برای افزونهها، تمها و هسته جلوگیری میکند.
Q: آیا این با WooCommerce، Jetpack و سایر افزونههای محبوب کار میکند؟
A: بله، به شرطی که دامنههای مورد نیاز آنها به لیست سفید شما اضافه شده باشد. سرویسهای رایج مانند PayPal، Stripe و پلتفرمهای تحلیلی در صورت وجود در لیست سفید به راحتی کار میکنند.
سوالات پیکربندی
Q: چطور دامنهها را به لیست سفید اضافه کنم؟
A: به تنظیمات → کنترل درخواستهای WP → تب لیست سفید بروید. دامنهها را وارد کنید (یکی در هر خط). میتوانید از وایلدکار مانند `*.google.com` برای مطابقت زیردامنهها استفاده کنید.
Q: تفاوت بین لیست سفید و لیست سیاه چیست؟
A: کنترل درخواستهای WP از رویکرد لیست سفید استفاده میکند - فقط دامنههایی که به صراحت مجاز شدهاند عبور میکنند. بقیه به صورت پیشفرض مسدود میشوند مگر اینکه از غفلت اضطراری استفاده کنید.
Q: آیا میتوانم URLهای خاصی را مسدود کنم یا فقط دامنهها؟
A: در حال حاضر افزونه در سطح دامنه کار میکند. تمام درخواستها به دامنههای مجاز در لیست سفید، فارغ از مسیر مجاز هستند.
Q: چطور جلوی وردپرس را برای بررسی بروزرسانیها بگیرم؟
A: "مسدود کردن بروزرسانیهای وردپرس.org" را در تنظیمات فعال کنید. این بررسیهای بروزرسانی از api.wordpress.org برای افزونهها، تمها و هسته را مسدود میکند.
Q: اگر مسدود کردن بروزرسانیهای وردپرس.org را فعال کنم چه میشود؟
A: شما بروزرسانیهای خودکار از وردپرس.org دریافت نخواهید کرد. باید افزونهها، تمها و هسته را به صورت دستی از طریق پیشخوان وردپرس بروزرسانی کنید.
سوالات گزارشها
Q: گزارشها کجا ذخیره میشوند؟
A: گزارشها در جدول دیتابیس وردپرس `wp_outbound_firewall_logs` ذخیره میشوند.
Q: گزارشها چقدر نگهداری میشوند؟
A: به صورت پیشفرض، گزارشها برای ۳۰ روز نگهداری میشوند. میتوانید دوره نگهداری را در تنظیمات پیکربندی کنید.
Q: آیا میتوانم گزارشها را به CSV صادر کنم؟
A: بله، صفحه گزارشها یک دکمه صادر کردن دارد که تمام گزارشها را به عنوان فایل CSV دانلود میکند.
Q: چه اطلاعاتی ثبت میشود؟
A: هر ورود گزارش شامل: تاریخچه، URL، میزبان، متد HTTP، وضعیت مسدود شدن، منبع (افزونه/تم)، شناسه کاربر و IP کاربر است.
Q: چطور گزارشهای قدیمی را پاک کنم؟
A: به صفحه گزارشها بروید و روی "پاکسازی گزارشهای قدیمی" کلیک کنید تا ورودهای قدیمیتر از دوره نگهداری حذف شوند، یا روی "پاک کردن همه گزارشها" کلیک کنید تا همه را پاک کنید.
سوالات عملکرد
Q: آیا این افزونه سایت وردپرس من را کند میکند؟
A: تأثیر حداقل. افزونه از WordPress transients برای کش لیست سفید (انقضا ۵ دقیقه) برای جلوگیری از کوئریهای دیتابیس در هر درخواست HTTP استفاده میکند.
Q: آیا افزونه در هر درخواست کوئری دیتابیس میکند؟
A: خیر. لیست سفید در transients وردپرس کش میشود. کوئریهای دیتابیس فقط هنگام ثبت درخواستهای مسدود شده یا مشاهده گزارشها اتفاق میافتد.
Q: آیا این میتواند نتیجه مثبت کاذب ایجاد کند؟
A: بله، اگر سرویسهای قانونی در لیست سفید نباشند. دامنههای مورد نیاز را بر اساس عملکرد سایت خود به لیست سفید اضافه کنید.
سوالات امنیتی
Q: آیا افزونه از حملات CSRF امن است؟
A: بله، تمام اقدامات پیشخوان از غیرفعالهای وردپرس و نیاز به قابلیت `manage_options` استفاده میکنند.
Q: آیا افزونه دادههای حساس ذخیره میکند؟
A: خیر، دادههای حساس ذخیره نمیشود. گزارشها URLهای عمومی، دامنهها و اطلاعات کاربر را شامل میشوند اما نه گذرواژهها یا کلیدهای API.
Q: آیا مهاجم میتواند افزونه را غیرفعال کند؟
A: خیر. حتی اگر حساب مدیر آسیب دیده باشد، آتشفشان فقط میتواند از طریق ثابتهای wp-config.php یا غیرفعال کردن افزونه از پیشخوان مدیر غیرفعال شود.
Q: آیا باید این را با WAF استفاده کنم؟
A: بله، کنترل درخواستهای WP با فایروالهای برنامههای وب موجود مکمل است و لایه دفاعی برنامهای را علیه اتصالات خروجی اضافه میکند.
سوالات رفع اشکال
Q: منو در پیشخوان وردپرس ظاهر نمیشود.
A: مطمئن شوید که با حساب مدیر وارد شدهاید و افزونه فعال است. برای خطاهای PHP در `wp-content/debug.log` بررسی کنید.
Q: هیچ گزارش ثبت نمیشود.
A: بررسی کنید که آتشفشان فعال است، بررسی کنید که جدول دیتابیس وجود دارد، و بررسی کنید که درخواستهای مسدود شده واقعاً در حال انجام هستند.
Q: افزونه درخواستهای قانونی را مسدود میکند.
A: دامنههای تحت تأثیر را به لیست سفید اضافه کنید. برای دیدن آنچه مسدود میشود، از `?wprc_firewall_debug=1` در URL استفاده کنید.
Q: خطای "شما مجوز کافی برای دسترسی به این صفحه را ندارید" را میبینم.
A: مطمئن شوید که حساب کاربری شما قابلیت `manage_options` دارد. `current_user_can('manage_options')` را در کد خود بررسی کنید.
Q: غفلت اضطراری کار نمیکند.
A: بررسی کنید که ثابت قبل از بارگذاری افزونه تعریف شده است. `define('WPOF_DISABLE_FIREWALL', true);` را به `wp-config.php` قبل از `require_once(ABSPATH . 'wp-settings.php');` اضافه کنید.
Q: جدول دیتابیس ایجاد نشده است.
A: افزونه را غیرفعال و دوباره فعال کنید. جدول باید روی فعالسازی ایجاد شود. اگر هنوز از بین رفته، دسترسیهای دیتابیس را بررسی کنید.
سوالات پیشرفته
Q: آیا میتوانم آتشفشان را برای کاربران خاص غیرفعال کنم؟
A: نه از طریق رابط افزونه. باید از هک فیلتر سفارشی استفاده کنید یا تابع `wprc_is_firewall_enabled()` را تغییر دهید.
Q: چطور قوانین مسدود کردن سفارشی اضافه کنم؟
A: از هک فیلتر `wprc_is_host_allowed` برای تغییر منطق بررسی لیست سفید استفاده کنید.
Q: آیا میتوانم گزارشها به سیستمهای خارجی بفرستم؟
A: بله، تابع `wprc_log_blocked_request()` را برای ارسال گزارشها به APIهای خارجی یا syslog تغییر دهید.
Q: آیا افزونه از چندموقعیتی پشتیبانی میکند؟
A: بله، افزونه در نصبهای چندموقعیتی وردپرس کار میکند. تنظیمات در سطح شبکه است.
Q: آیا میتوانم دوره نگهداری گزارش را سفارشی کنم؟
A: بله، از هک فیلتر `wprc_log_retention_days` برای تغییر دوره نگهداری پیشفرض ۳۰ روزه استفاده کنید.
تغییرات نسخه
تغییرات قابل توجه
همه تغییرات قابل توجه در WP Request Control در این فایل مستند شدهاند.
فرمت بر اساس [Keep a Changelog](https://keepachangelog.com/fa/) است
و این پروژه از [نسخهبندی معنایی](https://semver.org) پیروی میکند.
[1.1.4] - 2026-03-15
اصلاح شده
- بحرانی: نشاندادن متن "Blocking"/"Disabled" کنار آیکون تیرکابزار اصلاح شد - اکنون فقط آیکون با tooltip نمایش داده میشود
- بحرانی: رفع مشکل پاکشدن فهرست مجاز هنگام تغییر وضعیت فعال/غیرفعال کردن آتشنشان
- رفع مشکلات sanitization تنظیمات برای پردازش صحیح ورودی textarea (تبدیل رشته به آرایه)
- رفع تعریف تابع تکراری در `admin.php` که باعث خطای PHP میشد
- آیکون تیرکابزار اکنون فقط نشاندهنده سپر محافظ با tooltip است
- فهرست مجاز اکنون به درستی در `WPRC_Settings::sanitize_settings()` sanitization و به آرایه تبدیل میشود
- بحرانی: بارگذاری ترجمه فارسی اصلاح شد - فایلهای ترجمه `fa_IR` با فرمت صحیح WordPress i18n بازسازی شدند
- رفع خطای PHP ناشی از کد دیباگ معیوب در `admin.php`
- رفع فراخوانی نامعتبر `esc_js_e()` در قالبها (جایگزین با `esc_js( __( ... ) )`)
- پاکسازی رشتههای معیوب در `logs-page.php` و `settings-page.php`
- حذف تزریق منوی دیباگ از `admin.php`
- فایلهای ترجمه اکنون در `languages/wp-request-control-fa_IR.po/mo` با رشتههای کامل فارسی
- تمام مکالمههای تایید جاوااسکریپت اکنون الگوی صحیح `esc_js( __( ... ) )` را دنبال میکنند
- بحرانی: ردیابی منبع درخواست اصلاح شد - اکنونcaller واقعی را به جای فایل افزونه نشان میدهد
- بحرانی: خودکار-مجاز کردن دامنههای سایت برای جلوگیری از خراب شدن wp-cron و REST API
- اضافه کردن لیست مجاز خودکار برای دامنه سایت، localhost، و ahur.ir
- بهبود ردیابی caller با تحلیل stack caller
- `wprc_get_site_domains()` - دامنههای سایت را برای همیشه مجاز میکند
- `wprc_is_site_domain()` - بررسی میکند که آیا میزبان یک دامنه سایت است
- خودکار-مجاز کردن دامنه سایت در `wprc_is_host_allowed()`
- شناسایی بهتر caller در خروجی دیباگ
- `wprc_is_host_allowed()` اکنون ابتدا دامنههای سایت را بررسی میکند
- `wprc_get_request_source()` 3 فریم را رد میکند تا caller واقعی را پیدا کند
- بحرانی: توابع کمکی گمشده `wprc_log_blocked_request()`، `wprc_is_host_allowed()`، `wprc_should_block_wordpress_org()`، و `wprc_match_domain()` به `includes/helpers.php` اضافه شدند
- بحرانی: رفع خطای اعلام مجدد تابع `wprc_is_firewall_enabled()` (اکنون فقط در فایل اصلی افزونه)
- بحرانی: رفع خطای فراخوانی `esc_js_e()` در صفحه گزارشها (تغییر به `esc_js()` صحیح)
- رفع هشک REST API schema با اضافه کردن پیکربندی مناسب `schema.items` برای تنظیمات آرایه در `register_setting()`
- رفع خطاهای query پایگاه داده در صفحه گزارشها با اطمینان از اینکه `get_logs()` ساختار آرایه صحیح را برمیگرداند
- رفع عدم فعالسازی فایروال با اطمینان از بارگذاری صحیح تمام وابستگیها
- شماره نسخه به 1.1.1 بهروزرسانی شد
- مدیریت خطا در منطق توقف HTTP بهبود یافت
- ثبت گزارشها با زمینه کاربری اضافی (`user_id`، `user_ip`) تقویت شد
- `wprc_log_blocked_request()` - تابع کمکی برای ثبت درخواستهای HTTP مسدودشده
- `wprc_is_host_allowed()` - اعتبارسنجی لیست مجاز دامنه با پشتیبانی از wildcards
- `wprc_match_domain()` - تطبیق الگو برای wildcards دامنه (*.example.com)
- پشتیبانی از ثابتهای فرار اضطراری (`WPOF_DISABLE_FIREWALL`)
- اعتبارسنجی nonce صحیح برای تمام اقدامات admin اضافه شد
- بررسیهای قابلیت با استفاده از `manage_options` تقویت شد
- پاکسازی ورودی و خروجیگریسان افزایش یافت
- ساختار کامل افزونه با معماری مبتنی بر کلاس
- کلاس `WPRC_Firewall` برای توقف HTTP request
- کلاس `WPRC_Logger` برای مدیریت گزارشهای درخواستهای مسدودشده
- کلاس `WPRC_Admin` برای رابط admin WordPress
- کلاس `WPRC_Settings` برای یکپارچهسازی API تنظیمات
- صفحه تنظیمات با تببندی (تنظیمات، لیست مجاز)
- صفحه مدیریت گزارشها با کارتهای آمار و جدول
- handlers AJAX برای افزودن/حذف دامنهها
- خروجی CSV از گزارشها
- ایجاد/حذف جدول پایگاه داده در فعالسازی/غیرفعالسازی
- پشتیبانی از wildcards برای لیست مجاز (مثلاً `*.google.com`)
- کش کردن لیست مجاز با transients WordPress (انقضای 5 دقیقه)
- حالت دیباگ با پارامتر `?wprc_firewall_debug=1`
- کد از رویهای به شیءگرا ساختاردهی شد
- سازماندهی کد با فایلهای کلاس جداگانه بهبود یافت
- رعایت استانداردهای WordPress coding standards تقویت شد
- انتشار اولیه WP Request Control
- توقف HTTP request با استفاده از فیلتر `pre_http_request`
- عملکرد لیست مجاز دامنه
- مسدودسازی بهروزرسانیهای WordPress.org (هسته، افزونهها، پوستهها)
- صفحه تنظیمات admin پایه
- ذخیرهسازی گزارش در جدول پایگاه داده سفارشی
- هدر افزونه WordPress با اطلاعات متا
- ثبت گزارشهای غیرهمزمان از طریق wp-cron
- محدودیت نرخ برای کاربران واردشده
- مسدودسازی IP برای درخواستهای مخرب مکرر
- نقاط پایگاه REST API برای مدیریت خارجی
- اطلاعرسانیهای Webhook برای درخواستهای مسدودشده
- یکپارچهسازی با افزونههای امنیتی (Wordfence، Sucuri)
- بهینهسازی عملکرد برای سایتهای با ترافیک بالا
- موتور قوانین مسدودسازی سفارشی
- مستندات API
- آزمایشهای واحد و یکپارچه
تغییر کرده
[1.1.3] - 2026-03-15
اصلاح شده
تغییر کرده
[1.1.2] - 2026-03-15
اصلاح شده
اضافه شده
تغییر کرده
---
[1.1.1] - 2026-03-15
اصلاح شده
تغییر کرده
اضافه شده
امنیت
---
[1.1.0] - 2026-03-14
اضافه شده
تغییر کرده
---
[1.0.0] - 2026-03-14
اضافه شده
---
[در انتظار]
برنامهریزی شده
سابقه نسخهها
1.1.4
جدیدترین
2026/03/17
# تغییرات قابل توجه
همه تغییرات قابل توجه در WP Request Control در این فایل مستند شدهاند.
فرمت بر اساس [Keep a Changelog](http...
1.1.0
2026/03/15
**نسخه 1.0.0 – 2024**
- انتشار اولیه افزونه
- سیستم مسدودسازی کامل درخواستهای خروجی
- پشتیبانی از لیست سفید دام...
کنترل درخواست های وردپرس
نسخه 1.1.4
نصب مستقیم
⚠️ توجه
آیا افزونه Ahur System را در وبسایت وردپرسی خود نصب کردهاید؟
دامنه:
با کلیک روی این دکمه پنجره نصب افزونه باز میشود