مشکل امنیتی وردپرس در تمام نسخه ها! حل کنید مشکل را
- امنیت وردپرس
- بروزرسانی شده در

طبق گفته ی متخصصان وردپرس، این پلت فرم 29% از وبسایت های اینترنتی جهان را میزبانی می کند. منظور این مقاله٬ ایجاد هر وبسایت وردپرس بصورت آنلاین است و کاری با وردپرس های نصب شده در لوکال هاست سازمان ها و سیستم های شخصی نداریم! حالا یک مشکل امنیتی بوجود آمده. این مشکل از طریق Denial of Service صورت می پذیرد. Denial of Service به این معنی وارد کردن تقاضاهای زیادی به سرور است و امروز بحث این نیست که چگونه وبسایت وردپرس خود را از هک شدن دور کنیم و امنیت را بالا ببریم. بحث امروز ما رفع مشکل امنیتی وردپرس است.
آنچه در این مقاله میخوانید
۲۹ درصد از سایت های دنیا مشکل امنیت دارند!
به دلیل overload شدن یا حجم زیاد پردازش کننده عملیات سرور در یک بازه زمانی به صورت پی در پی توسط رایانه های مختلف حالا بصورت خواسته یا ناخواسته٬ سرور سایت شما ممکن است با مشکل مواجه شود. چون حجم اطلاعات زیاد است در واقع میزان لود سرور سایت شما افزایش پیدا کرده و اصطلاحا می گوییم سرور Down شده.
بروزرسانی: این مشکل در نسخه جدید وردپرس برطرف شد.
توجه داشته باشید که ورود به مسائل امنیتی وبسایت ها غیر قانونی بوده و در صورتی که مدیر وبسایت این اجازه را به شما دهد می توانید وارد مسائل امنیتی یک سایت شوید. در واقع این کار (هک یا اعمال فشار روی یک سایت) با انگیزه های متفاوت توسط گروهی از افراد صورت می پذیرد. اهداف این دسته از گروه ها ممکن است متفاوت باشد مثلاً برای از سر راه برداشتن رقیبان در وبسایت های مختلف. در هر صورت بهتر است برای جلوگیری از این حمله ها راه های پیشگیری را بدانید.
هنگامی که یک سایت با پلت فرم وردپرس ساخته می شود٬ آدرس اینترنتی زیر یک ملاک است برای لود فایل های مورد نیاز پنل مدیریت سایت های وردپرسی: این ادرس در تمام سایت های وردپرس وجود دارد.
https://siteshoma.com/wp-admin/load-scripts.php?c=1&load=jquery-ui-core
فایل load-scripts.php یک پارامتر به نام load [] دریافت می کند، مقدار پارامتر jquery-ui-core است. در پاسخ درخواست “JQuery UI Core” JS module را دریافت می کنیم. مانند تصویر زیر:

حالا این مشکل امنیتی وردپرس چی است؟
از این url می توان نتیجه گرفت که احتمالا این ادرس برای ایجاد فایل و خروجی برخی از ماژول های js است. علاوه بر این پارامتر [] یک آرایه است.که امکان ارائه مقادیر متعدد و قادر به دریافت ماژول های js می باشد. همانطور که وردپرس یک منبع باز است و باز بینی کدها و بررسی این ویژگی ها آسان است. از این ویژگی میتوان برای صرفه جویی برای مقدار درخواست ارسال شده از سرویس گیرنده در هنگام بارگذاری فایل های JS یا CSS استفاده کرد.
بنابراین هنگامی که مرورگر نیاز به بارگذاری چند فایل JS / CSS دارد، از کد اسکریپت (php) برای JS استفاده می شود. برای سریعتر کارکردن پنل مدیریت وردپرس بهتر است همه فایل های js و سی اس اس توسط این فایل بصورت همزمان اجرا شود پس ایجاد این فایل در وردپرس چندان هم بیخود و بی جهت نبوده.
حالا مشکل اینجاست که این مقدار می تواند حدود ۱۸۱ متغیر را در خود جای دهد! لیست متغیر ها:
eutil,common,wp-a11y,sack,quicktag,colorpicker,editor,wp-fullscreen-stu,wp-ajax-response,wp-api-request,wp-pointer,autosave,heartbeat,wp-auth-check,wp-lists,prototype,scriptaculous-root,scriptaculous-builder,scriptaculous-dragdrop,scriptaculous-effects,scriptaculous-slider,scriptaculous-sound,scriptaculous-controls,scriptaculous,cropper,jquery,jquery-core,jquery-migrate,jquery-ui-core,jquery-effects-core,jquery-effects-blind,jquery-effects-bounce,jquery-effects-clip,jquery-effects-drop,jquery-effects-explode,jquery-effects-fade,jquery-effects-fold,jquery-effects-highlight,jquery-effects-puff,jquery-effects-pulsate,jquery-effects-scale,jquery-effects-shake,jquery-effects-size,jquery-effects-slide,jquery-effects-transfer,jquery-ui-accordion,jquery-ui-autocomplete,jquery-ui-button,jquery-ui-datepicker,jquery-ui-dialog,jquery-ui-draggable,jquery-ui-droppable,jquery-ui-menu,jquery-ui-mouse,jquery-ui-position,jquery-ui-progressbar,jquery-ui-resizable,jquery-ui-selectable,jquery-ui-selectmenu,jquery-ui-slider,jquery-ui-sortable,jquery-ui-spinner,jquery-ui-tabs,jquery-ui-tooltip,jquery-ui-widget,jquery-form,jquery-color,schedule,jquery-query,jquery-serialize-object,jquery-hotkeys,jquery-table-hotkeys,jquery-touch-punch,suggest,imagesloaded,masonry,jquery-masonry,thickbox,jcrop,swfobject,moxiejs,plupload,plupload-handlers,wp-plupload,swfupload,swfupload-all,swfupload-handlers,comment-repl,json2,underscore,backbone,wp-util,wp-sanitize,wp-backbone,revisions,imgareaselect,mediaelement,mediaelement-core,mediaelement-migrat,mediaelement-vimeo,wp-mediaelement,wp-codemirror,csslint,jshint,esprima,jsonlint,htmlhint,htmlhint-kses,code-editor,wp-theme-plugin-editor,wp-playlist,zxcvbn-async,password-strength-meter,user-profile,language-chooser,user-suggest,admin-ba,wplink,wpdialogs,word-coun,media-upload,hoverIntent,customize-base,customize-loader,customize-preview,customize-models,customize-views,customize-controls,customize-selective-refresh,customize-widgets,customize-preview-widgets,customize-nav-menus,customize-preview-nav-menus,wp-custom-header,accordion,shortcode,media-models,wp-embe,media-views,media-editor,media-audiovideo,mce-view,wp-api,admin-tags,admin-comments,xfn,postbox,tags-box,tags-suggest,post,editor-expand,link,comment,admin-gallery,admin-widgets,media-widgets,media-audio-widget,media-image-widget,media-gallery-widget,media-video-widget,text-widgets,custom-html-widgets,theme,inline-edit-post,inline-edit-tax,plugin-install,updates,farbtastic,iris,wp-color-picker,dashboard,list-revision,media-grid,media,image-edit,set-post-thumbnail,nav-menu,custom-header,custom-background,media-gallery,svg-painter
اگر هنوز هم به عمق فاجعه پی نبرده اید٬ فیلم آموزشی را ببینید تا متوجه این موضوع شوید.
پس یک هکر نه چندان حرفه ای هم می تواند با چندبار reload کردن صفحه سایت شما را زیر فشار Dos قرار دهید و سایتتان را Down کند. به همین راحتی!
حالا چطور مشکل را حل کنیم؟
اگر سرور سایت دست شماست و دسترسی مستقیم به سرور سایتتان دارید. فیلم آموزشی بالای صفحه را ببینید و به راحتی مشکلتان را حل کنید.
این هم کدی که در فیلم آموزشی به فایل reza.sh اضافه کردم:
#! /bin/bash
if [[ -f wp-login.php && -f wp-admin/load-scripts.php && -f wp-admin/includes/noop.php ]]
then
sed -i "1 s/^.*$/<?php\ndefine('CONCATENATE_SCRIPTS', false);/" wp-login.php
sed -i -e "s/^require( ABSPATH . WPINC . '\/script-loader.php' );$/require( ABSPATH . 'wp-admin\/admin.php' );/g" wp-admin/load-scripts.php
sed -i -e "s/^require( ABSPATH . WPINC . '\/script-loader.php' );$/require( ABSPATH . 'wp-admin\/admin.php' );/g" wp-admin/load-styles.php
echo """<?php
/**
* Noop functions for load-scripts.php and load-styles.php.
*
* @package wordpress
* @subpackage Administration
* @since 4.4.0
*/
function get_file( \$path ) {
if ( function_exists('realpath') ) {
\$path = realpath( \$path );
}
if ( ! \$path || ! @is_file( \$path ) ) {
return '';
}
return @file_get_contents( \$path );
}""" > wp-admin/includes/noop.php
echo 'Successfuly patched.'
else
echo 'Please run this file from WordPress root directory.'
fi
و نحوه کار با این کدها و قراردادن آن در سایتتان را در فیلم ببینید.
اگر هاست اشتراکی دارید کافیست نسخه وردپرسی که انتهای همین پست برای دانلود قرار دادم را نصب کنید. آموزش آپدیت دستی وردپرس را هم ببینید.
موفق و پیروز و سربلند و متخصص امنیت وردپرس باشید 😀