علائم مشکل

هنگام ویرایش یا ذخیره صفحات با 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ها نیز کاربرد دارد.

آیا این پاسخ مفید بود؟ 1 کاربر این مقاله را مفید می دانند (1 رای)