آنچه در این مطلب می خوانید
Toggleچکلیست امنیت وردپرس
REST API و Endpointهای غیرضروری بررسی شدهاند.
برای اجرای این چکلیست، اولویتبندی تستهای امنیتی و نتیجه مورد انتظار در جدول زیر مشخص شده است:
| تست امنیتی | اهمیت | نتیجه مورد انتظار پس از تست |
| بررسی Core و Pluginها | بسیار بالا | بدون نسخه آسیبپذیر و آپدیتشده |
| بررسی حسابهای کاربری | بسیار بالا | دسترسیهای محدود و احراز هویت قوی |
| Malware Scan (اسکن بدافزار) | بسیار بالا | بدون فایل مشکوک یا تغییریافته |
| بررسی HTTPS | بسیار بالا | اتصال امن و بدون Mixed Content |
| تست Backup/Restore | بسیار بالا | بازیابی موفقیتآمیز در محیط تستی |
| بررسی File Permissions | بالا | دسترسی محدود (644 برای فایلها) |
| بررسی Security Headers | متوسط تا بالا | تنظیمات مناسب و جلوگیری از XSS/Clickjacking |
| بررسی لاگها (Logs) | بالا | بدون فعالیت مشکوک و ورود ناشناس |
تست امنیت سایت وردپرس را از کجا شروع کنیم؟
تست امنیت صرفاً با نصب یک افزونه و گرفتن یک Scan Report سبز رنگ تمام نمیشود. برای بررسی دقیق، این مسیر مهندسی را طی کنید:
شناسایی داراییها
اسکن خودکار
بررسی دستی تنظیمات
بررسی سطوح دسترسی
بررسی سلامت نرمافزارها
ممیزی سرور
تست مجدد (Retest)
امنیت سایت از همان زمان راهاندازی باید در نظر گرفته شود و بسیاری از مشکلات امنیتی نتیجه پیکربندی اشتباه در مراحل اولیه هستند. انتخاب هاست، نصب وردپرس، تنظیمات اولیه، ایجاد حسابهای کاربری و فعالسازی سرویسهای ضروری، همگی روی امنیت آینده سایت تأثیر دارند؛ به همین دلیل آشنایی با صفر تا صد مراحل راهاندازی سایت میتواند از ایجاد بسیاری از ضعفهای فنی و امنیتی در ادامه مسیر جلوگیری کند.
بررسی نسخه وردپرس، قالب و افزونهها
آسیبپذیری در کدهای قدیمی، اصلیترین راه نفوذ به وردپرس است:
- نسخه WordPress بررسی شود (باید آخرین نسخه پایدار باشد).
- تمام افزونهها بررسی شوند و آپدیتهای امنیتی نصب گردند.
- قالب فعال سایت بررسی و بهروزرسانی شود.
- قالبهای بلااستفاده از پوشه Themes کاملاً حذف شوند.
- Pluginهای بلااستفاده (حتی غیرفعالها) کاملاً Delete شوند.
- افزونههای دارای آسیبپذیری شناختهشده (از طریق دیتابیس WPScan) شناسایی و جایگزین شوند.
- اطمینان حاصل شود که تمام افزونهها از منابع معتبر تهیه شدهاند (استفاده از نسخههای نالشده ممنوع).
- نسخه PHP در هاست بررسی شود (حداقل 8.0 به بالا)
هر بهروزرسانی هسته وردپرس الزاماً به معنای سازگاری تمام افزونهها و قالبها نیست و قبل از انجام آپدیتهای مهم باید وضعیت Pluginها بررسی شود. این موضوع بهخصوص هنگام انتشار نسخههای جدید اهمیت بیشتری پیدا میکند؛ بنابراین پیش از بهروزرسانی، بررسی هشدار آپدیت وردپرس ۷.۰ کمک میکند از بروز ناسازگاری، اختلال در عملکرد سایت یا ایجاد خطاهای ناگهانی جلوگیری شود.
| مورد | چه چیزی بررسی شود؟ | اقدام نهایی |
| WordPress Core | نسخه فعلی و وضعیت پشتیبانی | Update به آخرین نسخه |
| Plugin | نسخه فعلی و وجود آسیبپذیری (CVE) | Update یا Remove |
| Theme | نسخه، سازگاری و منبع دریافت | Update یا Remove |
| PHP | نسخه پشتیبانیشده در سرور | Upgrade (ارتقا از CPanel) |
تعداد زیاد افزونهها همیشه به معنی امکانات بیشتر نیست و افزونههای غیرضروری میتوانند هم سطح حمله سایت را افزایش دهند و هم منابع بیشتری مصرف کنند. در کنار حذف Pluginهای بلااستفاده، انتخاب ابزار مناسب برای بهینهسازی عملکرد نیز اهمیت دارد و بررسی بهترین افزونه افزایش سرعت وردپرس میتواند به کاهش زمان بارگذاری و مدیریت بهتر منابع سایت کمک کند.
تست حسابهای کاربری و سطح دسترسی
بررسی Administratorها
بررسی امنیت حساب مدیران
آیا مدیران از رمزهای قوی و منحصربهفرد استفاده میکنند؟
آیا MFA (احراز هویت دومرحلهای) برای حسابهای مدیریتی اجباری شده است؟
آیا فرآیند Password Reset فقط از طریق ایمیلهای معتبر و قابلاعتماد انجام میشود؟
بررسی امنیت ورود و مدیریت نشست
آیا Rate Limiting برای محدودکردن دفعات ورود ناموفق فعال است؟
آیا لاگینهای ناموفق متوالی شناسایی و ثبت میشوند؟
آیا Session Management برای مدیریت و کنترل نشستهای فعال بهدرستی پیادهسازی شده است؟
آیا برای ورودهای مشکوک از IPهای ناشناس، Alert یا هشدار امنیتی ارسال میشود؟
تست امنیت وردپرس زمانی نتیجه دقیقتری دارد که علاوه بر شناسایی آسیبپذیریها، وضعیت کلی سایت نیز از نظر HTTPS، حسابهای کاربری، Permissionها، Backup، Security Headers، لاگها و فایلهای حساس بررسی شود. به همین دلیل چک لیست امنیت سایت میتواند برای تکمیل فرایند ارزیابی و اطمینان از اینکه بخشهای مهم امنیتی سایت از قلم نیفتادهاند، مورد استفاده قرار گیرد.
بررسی امنیت فایلها و تنظیمات سرور
برخی فایلها حاوی شاهرگهای حیاتی سایت هستند. شما باید از عدم دسترسی عمومی به این فایلها مطمئن شوید:
فایل Configuration یعنی wp-config.php نباید از طریق مرورگر قابل خواندن باشد.
Backupهای باقیمانده روی Server، مانند فایلهای .zip یا .sql، باید حذف شوند.
فایلهای Debug مانند debug.log نباید حاوی مسیرها و خطاهای حساس باشند و نباید بهصورت عمومی قابل دسترسی باشند.
وضعیت Directory Listing باید غیرفعال باشد تا کاربر نتواند فهرست فایلهای پوشه wp-content/uploads را مشاهده کند.
فایلهای موقت و فایلهای نصب قدیمی مانند readme.html یا license.txt حذف شوند.
تست و بررسی Permission و دسترسیهای سرور
اگر سطح دسترسی (Permission) در هاست اشتباه باشد، هکر به راحتی کدهای مخرب را تزریق میکند:
Permission فایلها بررسی شده باشد؛ معمولاً 644 یا 640.
Permission پوشهها بررسی شده باشد؛ معمولاً 755 یا 750.
فایلهای حساس مانند wp-config.php نباید Writeable باشند، مگر هنگام تغییرات ضروری؛ معمولاً 440 یا 400.
User مربوط به Web Server مانند www-data نباید دسترسی غیرضروری به پوشههای روت داشته باشد.
تنظیم مناسب Permission به Server، Hosting و معماری سایت بستگی دارد؛ بنابراین نباید یک مقدار ثابت بدون بررسی برای همه سایتها اعمال شود.
تست و بررسی Malware و فایلهای مشکوک سایت
شناسایی نشانههای احتمالی آلودگی، پیش از آنکه گوگل سایت شما را بلکلیست کند:
اسکن (Scan) فایلهای سایت با ابزارهای امنیتی انجام شود.
تغییرات غیرمنتظره در تاریخ Modification Date فایلها بررسی شود.
فایلهای جدید و مشکوک در پوشههای آپلود شناسایی و بررسی شوند.
تغییرات Core بررسی شود؛ فایلهای اصلی وردپرس نباید بدون دلیل ویرایش شده باشند.
Integrity (یکپارچگی) فایلها با نسخه سالم و مرجع مقایسه شود.
Redirectهای غیرعادی، مانند هدایت کاربران موبایل به سایتهای اسپم، بررسی شوند.
صفحات یا محتوای ناشناخته مانند Japanese SEO Spam شناسایی و بررسی شوند.
تست امنیت Login و پنل مدیریت
صفحه ورود wp-login.php باید در برابر دسترسی و حملات غیرمجاز محافظت شود.
بررسی شود که MFA برای حسابهای مدیریتی فعال و در پروژههای حساس اجباری باشد.
آیا Rate Limiting از حملات Brute Force جلوگیری میکند؟
در صورت نیاز، CAPTCHA روی فرم ورود فعال باشد.
در پروژههای حساس، امکان محدودسازی دسترسی Administrator بر اساس IP بررسی شود.
Login Logs برای ثبت و پایش تلاشهای ورود فعال و قابل بررسی باشند.
بررسی SSL و امنیت ارتباطات HTTPS
HTTPS روی تمام صفحات سایت فعال باشد.
Certificate معتبر بوده و توسط یک مرجع معتبر (CA) صادر شده باشد.
تاریخ اعتبار Certificate بررسی شده و منقضی نشده باشد.
تمام ترافیک HTTP بهدرستی به HTTPS Redirect شود.
خطای Mixed Content، یعنی بارگذاری فایلهای ناامن در بستر امن، وجود نداشته باشد.
Cookieهای حساس با تنظیمات Secure و HttpOnly ارسال شوند.
HSTS در صورت مناسب بودن شرایط بررسی و فعال شده باشد.
SSL صرفاً اطلاعات بین کاربر و سرور را رمزنگاری میکند؛ داشتن SSL بهتنهایی به معنی امن بودن سایت وردپرسی در برابر هک نیست.
تست Security Headers وردپرس
هدرهای امنیتی به مرورگر دستور میدهند که چگونه با محتوای سایت رفتار کند:
| نام Header | هدف بررسی |
| Content-Security-Policy (CSP) | کنترل منابع مجاز برای لود شدن و جلوگیری از XSS |
| Strict-Transport-Security (HSTS) | اجبار مرورگر به استفاده از اتصال امن HTTPS |
| X-Content-Type-Options | کنترل و جلوگیری از حملات MIME Sniffing |
| Referrer-Policy | کنترل میزان اطلاعات Referrer ارسالی به خارج از سایت |
| Permissions-Policy | کنترل قابلیتهای سختافزاری مرورگر (مانند وبکم و میکروفون) |
⚠️
هدرها باید متناسب با سایت تنظیم شوند. کپی کردن کدهای سختگیرانه CSP از اینترنت ممکن است عملکرد سایت و قالب شما را مختل کند.
بررسی امنیت دیتابیس وردپرس
🔒 دسترسی از راه دور
🔑 Credentials
🔍 Query و دادهها
👤 سطح دسترسی User
💾 Backup دیتابیس
تست REST API و XML-RPC
⚙️ نیاز به REST API
👥 Endpointهای عمومی
🔐 Authentication
🔎 افشای اطلاعات
🛡️ وضعیت XML-RPC
⚠️
غیرفعال کردن کورکورانه REST API یا XML-RPC توصیه نمیشود؛
ابتدا مشخص کنید سایت یا افزونهای به این قابلیتها نیاز دارد یا خیر.
بررسی امنیت فرمها و ورودیهای سایت
✓ Input Validation
✓ Output Encoding
✓ CSRF Protection
✓ File Upload
✓ Spam Protection
✓ Error Handling
بررسی امنیت و قابلیت اتکای Backup
⚠️
داشتن Backup تستنشده، Backup قابل اتکا محسوب نمیشود.
✓ Backup منظم
✓ Database
✓ فایلهای سایت
✓ Retention Policy
✓ محل ذخیره جداگانه
✓ تست Restore
✓ مستندسازی Recovery
داشتن نسخه پشتیبان تنها زمانی یک لایه امنیتی واقعی محسوب میشود که فرآیند تهیه و بازیابی آن بهدرستی انجام شده باشد. فایلهای سایت و Database باید بهصورت منظم Backup شوند و نسخههای پشتیبان در محل جداگانه نگهداری شوند. همچنین Restore باید بهصورت دورهای آزمایش شود تا در زمان خرابی یا نفوذ، امکان بازگردانی سایت وجود داشته باشد؛ رعایت اصول آموزش بکاپ گیری وردپرس برای ایجاد یک فرآیند Backup قابل اعتماد ضروری است.
ابزارهای تست امنیت سایت وردپرس
ابزارها هیچگاه جایگزین تحلیل متخصص نمیشوند، اما برای تسریع فرآیند استفاده از آنها ضروری است:
| نام ابزار / روش | کاربرد اصلی | مناسب برای |
| WordPress Site Health | بررسی وضعیت کلی، نسخه PHP و ماژولها | همه سایتها |
| WPScan | شناسایی آسیبپذیریهای شناختهشده هسته و افزونهها | کاربران فنی (CLI) |
| Wordfence | اسکن کدهای مخرب (Malware) و Monitoring | سایتهای وردپرسی |
| Sucuri SiteCheck | بررسی نشانههای آلودگی، بلکلیست و وضعیت سایت | بررسی اولیه و سریع |
| Google Safe Browsing | بررسی وضعیت سایت در بلکلیستهای گوگل | همه سایتها |
| Security Headers | بررسی وضعیت و کیفیت Headerهای امنیتی | همه سایتها |
⚠️
ابزارها صرفاً بخشی از فرآیند هستند و هیچ Scan واحدی امنیت کامل سایت را تضمین نمیکند.
همچنین WPScan را فقط روی سایتی اجرا کنید که مالک آن هستید یا اجازه کتبی برای تست امنیتی آن را دارید.
سایت sentinelone.com در مورد اهمیت تست امنیت وردپرس اینگونه اشاره کرده است:
For any WordPress site, ranging from a personal blog to a huge e-commerce store, having a WordPress security audit is the first line of defense against any hackers. Through the process of checking plugin trustworthiness, user privileges, logs, and backups, it becomes possible to reduce the number of possible angles that an attacker can use to infiltrate the system.
برای هر وبسایت وردپرسی، از یک وبلاگ شخصی گرفته تا یک فروشگاه اینترنتی بزرگ، انجام ارزیابی امنیتی (Audit) نخستین خط دفاعی در برابر هکرها محسوب میشود. با بررسی مواردی همچون میزان قابلاعتماد بودن افزونهها، سطوح دسترسی کاربران، لاگها و نسخههای پشتیبان، میتوان راههای احتمالی نفوذ مهاجمان به سیستم را به حداقل رساند.
چگونه نتیجه تست امنیت وردپرس را تحلیل کنیم؟
نتایج تست را بر اساس سطح ریسک به ۴ دسته تقسیم کنید:
| نتیجه تست (یافته امنیتی) | سطح اولویت | اقدام سریع |
| نسخه آسیبپذیر Plugin | Critical/High | Update یا Remove فوری |
| Administrator ناشناس | Critical/High | بررسی، پاکسازی و غیرفعالسازی |
| Backup نامطمئن | High | ایجاد و تست فوری فرآیند Backup |
| Header ناقص | Medium | تنظیم صحیح هدرها در زمان مناسب |
| Plugin بلااستفاده | Medium | حذف (Delete) از هاست |
نتیجه تست امنیت زمانی ارزشمند است که یافتههای شناساییشده به اقدامات اصلاحی و پیشگیرانه تبدیل شوند. بهروزرسانی نرمافزارها، مدیریت دسترسی کاربران، استفاده از MFA، محافظت از فایلهای حساس، بررسی لاگها و داشتن Backup سالم باید به بخشی از نگهداری مستمر سایت تبدیل شوند. مجموعه این اقدامات در کنار یک فرآیند منظم، مسیر آموزش افزایش امنیت وردپرس را شکل میدهد و به کاهش ریسک نفوذهای رایج کمک میکند.
اگر سایت وردپرسی هک شده باشد، چه کنیم؟
اگر در طول تست امنیت متوجه نفوذ شدید، وحشت نکنید:
۱. وضعیت را مستند کنید (اسکرینشات از خطاها و لاگها بگیرید).
۲. Backup/Forensic Copy از وضعیت فعلی آلوده برای بررسیهای بعدی در صورت امکان حفظ کنید.
۳. دسترسیهای مشکوک را مسدود کنید.
۴. Credentials حساس را از مسیر امن تغییر دهید.
۵. سایت را از Backup سالم بازیابی (Restore) کنید، در صورت امکان.
۶. علت نفوذ را شناسایی کنید.
۷. نرمافزارهای آسیبپذیر را اصلاح کنید.
۸. پس از پاکسازی، دوباره تست امنیت انجام دهید.
۹. Monitoring را فعال کنید.
⚠️
در رخدادهای جدی، مانند سرقت داده مشتریان، بررسی و مدیریت حادثه باید توسط متخصص امنیت، مراجع Incident Response و تیم فنی متخصصی مانند تیم شادکس انجام شود.
🛡️ برای ثبت درخواست اجرای تست نفوذ و ممیزی امنیتی پیشرفته پلتفرم خود با تیم فنی شادکس وردپرس در تماس باشید.
چک لیست تست امنیت سایت وردپرس (نسخه قابل چاپ)
برای بررسی ماهانه، این لیست را تیک بزنید:
ناسازگاری میان نسخه PHP، افزونهها، قالب و هسته وردپرس میتواند علاوه بر ایجاد مشکلات امنیتی، باعث از کار افتادن بخشی از سایت یا نمایش خطاهای جدی شود. اگر پس از نصب یا بهروزرسانی یک افزونه یا قالب در سایت خطا ایجاد شد، با بررسی رفع خطای “یک خطای مهم در وبسایت شما رخ داده است” در وردپرس، و بررسی تغییرات اخیر، نسخه PHP و افزونههای فعال میتوانید عامل اصلی خطا را شناسایی کنید.
سوالات متداول
چگونه امنیت سایت وردپرس را تست کنیم؟
با استفاده از روشهای ترکیبی: بررسی دستی تنظیمات (نسخهها، پسوردها و بکاپ)، استفاده از ابزارهای اتوماتیک (مثل WPScan) و تحلیل لاگهای سرور.
بهترین ابزار تست امنیت وردپرس چیست؟
ابزار WPScan برای کارشناسان فنی بهترین انتخاب است؛ اما افزونههایی مانند Wordfence برای مدیران عمومی کاربردیترند.
آیا افزونه امنیتی برای تست وردپرس کافی است؟
خیر، افزونههای امنیتی فقط در سطح Application کار میکنند و نمیتوانند آسیبپذیریهای مربوط به وبسرور، سطح دسترسی فایلها یا امنیت DNS را پوشش دهند.
چگونه بفهمیم سایت وردپرسی هک شده است؟
از طریق دریافت ایمیل هشدار از Google Safe Browsing، مشاهده پاپآپهای ناخواسته، تغییرات فایلهای Core، و ایجاد کاربران جدید با دسترسی مدیرکل.
آیا WPScan برای تست امنیت وردپرس مناسب است؟
بسیار عالی است، اما حتماً دقت کنید که تست و اسکن آسیبپذیری باید صرفاً روی سایتی که مالک آن هستید یا اجازه کتبی تست آن را دارید انجام شود.
هر چند وقت یکبار باید امنیت وردپرس را بررسی کرد؟
پایش اولیه بدافزارها باید ۲۴ ساعته انجام شود. تستهای عمیق (Auditing) باید ماهانه یا پس از نصب هرگونه افزونه جدید صورت گیرد.
آیا SSL امنیت وردپرس را تضمین میکند؟
خیر. SSL فقط ارتباط بین کاربر و سایت را رمزنگاری میکند تا اطلاعات شنود نشود، اما جلوی هک شدن سایت از طریق پسوردهای ضعیف یا باگ افزونهها را نمیگیرد.
چگونه آسیبپذیری افزونههای وردپرس را بررسی کنیم؟
با مقایسه نسخه نصبشده در سایت با پایگاه داده آسیبپذیریهای وردپرس (مانند WPScan Vulnerability Database) و اطمینان از آپدیت بودن تمام پلاگینها.


