علائم مشکل
هنگام ویرایش یا ذخیره صفحات با Elementor:
-
صفحه ذخیره نمیشود.
-
المنتور گیر میکند.
-
خطای 403 مشاهده میشود.
-
در لاگ ModSecurity این خطا ثبت میشود:
POST /wp-admin/admin-ajax.php
Access denied with code 403
و در جزئیات Rule:
[id "941100"]
[msg "XSS Attack Detected via libinjection"]
تشخیص علت
در لاگهای ModSecurity مشاهده شد:
Rule ID: 941100
این Rule متعلق به:
REQUEST-941-APPLICATION-ATTACK-XSS.conf
میباشد.
وظیفه آن شناسایی حملات XSS است.
اما گاهی Elementor هنگام ارسال محتوای HTML و JavaScript باعث False Positive میشود.
تست اولیه
برای اطمینان از علت مشکل:
مسیر:
WHM/ Security Center/ ModSecurity Vendors
فایل زیر را موقتاً خاموش کردیم:
REQUEST-941-APPLICATION-ATTACK-XSS.conf
پس از خاموش کردن:
Elementor شروع به کار کرد
بنابراین مشخص شد مشکل از Ruleهای گروه 941 است.
راه حل نهایی
به جای خاموش کردن کل گروه XSS، برای Ajax وردپرس استثنا تعریف شد.
مسیر:
WHM/ Security Center/ ModSecurity Tools/ Add Rule
Rule شماره 1
حذف Rule 941100 فقط برای admin-ajax.php
SecRule REQUEST_URI "@beginsWith /wp-admin/admin-ajax.php" \
"id:1000001,phase:1,pass,nolog,ctl:ruleRemoveById=941100"
Rule شماره 2
حذف سایر Ruleهای XSS فقط برای admin-ajax.php
SecRule REQUEST_URI "@beginsWith /wp-admin/admin-ajax.php" \
"id:1000002,phase:1,pass,nolog,ctl:ruleRemoveByTag=attack-xss"
Deploy تغییرات
بعد از ذخیره Ruleها:
Deploy Changes
را اجرا کنید.
پیغام موفقیت:
Successfully deployed the staged changes
نمایش داده میشود.
فعال کردن مجدد OWASP CRS
بعد از ایجاد استثناها:
مسیر:
WHM/ Security Center/ ModSecurity Vendors
فایل زیر را دوباره فعال کنید:
REQUEST-941-APPLICATION-ATTACK-XSS.conf
و مطمئن شوید وضعیت آن:
ON
باشد.
نتیجه نهایی
پس از اعمال Ruleهای سفارشی:
Elementor بدون خطا ذخیره میکند.
خطای 403 حذف میشود.
Ruleهای امنیتی XSS برای کل سایت فعال باقی میمانند.
فقط درخواستهای:
/wp-admin/admin-ajax.php
از بررسی Ruleهای XSS مستثنی میشوند.
نکته امنیتی
این روش بسیار بهتر از خاموش کردن کامل:
REQUEST-941-APPLICATION-ATTACK-XSS.conf
است زیرا:
-
امنیت سایر بخشهای سایت حفظ میشود.
-
فقط Ajax وردپرس استثنا میشود.
-
ریسک امنیتی به حداقل میرسد.
اگر در آینده بعد از بهروزرسانی Elementor یا OWASP CRS دوباره با 403 مواجه شدی، اولین جایی که باید بررسی شود:
WHM / ModSecurity Tools / Hits List
و سپس Rule ID ثبتشده در لاگ است. این روش برای اکثر مشکلات Elementor، WPBakery و سایر Page Builderها نیز کاربرد دارد.