• آموزش ساخت سایت و رساندن آن به درآمد

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

مشکل امنیتی وردپرس

۲۹ درصد از سایت های دنیا مشکل امنیت دارند!

طبق گفته ی متخصصان وردپرس، این پلت فرم 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 را دریافت می کنیم. مانند تصویر زیر:

فایل load وردپرس

حالا این مشکل امنیتی وردپرس چی هست؟

از این 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 اضافه کردم:

و نحوه کار با این کدها و قراردادن آن در سایتتان را در فیلم ببینید.

اگر هاست اشتراکی دارید کافیست نسخه وردپرسی که انتهای همین پست برای دانلود قرار دادم را نصب کنید. آموزش آپدیت دستی وردپرس را هم ببینید.

آموزش افزایش امنیت سایت

موفق و پیروز و سربلند و متخصص امنیت وردپرس باشید :D

راستی! برای دریافت مطالب وردپرسی در کانال تلگرام میهن وردپرس عضو شوید.

آنلاین یاد بگیرید

نظرات کاربران

  1. 6 اردیبهشت 1397 ساعت 18:02

    سلام
    در فیلم های آموزشیتان ، با چه نرم افزاری از دسکتاپ فیلم ضبط می کنید ؟

  2. 25 فروردین 1397 ساعت 13:14

    همه این کارها را انجام دادم ولی باز هم مشکل وجود داره
    فایل را دانلود کده و آپدیت نمودم

    • محمد مقدم
      26 فروردین 1397 ساعت 08:50

      اگر مراحل را درست پیش رفته باشید به خوبی کار میکند.

  3. 22 فروردین 1397 ساعت 12:24

    من از افزونه افزونه امنیتی وردپرس و فایروال استفاده میکنم ایا نیازی به این کار بود

    تازه من این فایل دانلودی شما رو دانلود کردم و در هاست جایگزین کردم
    وقتی وارد ادمین میشم هیچ درخواستی رو نداده

    انتها
    اینو نوشته
    شما در حال استفاده از یک نگارش در حال توسعه (5.0-alpha-42964) می‌باشید٬ ایول!

    ولی هیچ تاثیری هم نداشته و باز هکر میتونه کار خودشو انجام بده

    • محمد مقدم
      22 فروردین 1397 ساعت 16:07

      یله باز هم نیاز به اینکار است.
      اگر درست انجام شود مشکل رفع میشود.

  4. 14 فروردین 1397 ساعت 00:24

    من روی لوکال تست کردم نشد …. به هر حال ممنون

    • محمد مقدم
      14 فروردین 1397 ساعت 15:20

      به دلیل کمبود منابع لوکال هاست روی هاست اصلی تست کنید.

  5. 12 فروردین 1397 ساعت 19:34

    سلام
    فایل شما را گذاشتم به جای فایل اصلی ورد پرس ولی هیچ فرقی نکرد . شما خودتون فایل را تست کردین ؟

  6. 10 فروردین 1397 ساعت 16:13

    بنظرم بجای این کارها بهتره برید در خط اول فایل “load-scripts.php” بعد از 20) exit;
    در این کد گفته شده اگر تعداد متغیرها بیشتر از 20 تا شد عملیات کنسل بشه این عدد قابل تغییر است.

  7. 24 اسفند 1396 ساعت 16:32

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

  8. 20 اسفند 1396 ساعت 19:03

    افزونه all-in-one-wp-security-and-firewall رو معرفی کنید راحت
    https://wordpress.org/support/topic/load-scriptphp-fails-to-load/?replies=3

  9. 16 اسفند 1396 ساعت 18:24

    سلام. سایت خودتونم که هنوز همین مشکل رو داره D:

    • رضا حسینی راد
      17 اسفند 1396 ساعت 12:03

      سلام سایت ما از روش دیگه ای مشکل رو حل کرده. از طریق فایروال سرور :D سه بار درخواست رو بفرستید و نتیجه رو ببینید. :) آی پی شما سریع بلاک میشه

  10. 12 اسفند 1396 ساعت 09:49

    جالب بود.اما نیاز به این همه اب و تاب نداشت به نظر من
    خیلی راحت میشه با password protect directory یا محدود کردن بخش ادمین به ip این مورد رو رفع کرد
    ما هیچ مشکلی نداریم با این موضوع چون اصلا اجازه لود این فایل رو نمیدیم و تمام

    • رضا حسینی راد
      12 اسفند 1396 ساعت 11:42

      سلام
      درسته اما سایت هایی که مثل سایت ما از عضویت و ورود کاربر استفاده می کنند چی؟

      • 12 اسفند 1396 ساعت 12:04

        سلام استاد
        شما که فرمودید بنده هم به شک افتادم که نکنه کاربر ها مشکلی داشته باشند
        اما چک کردم موردی نیست برای لاگین کردن کاربران سایت از بابت password protect directory

        • رضا حسینی راد
          12 اسفند 1396 ساعت 12:09

          در یک صورت مشکلی نیست. اینکه از افزونه هایی مثل یوزر پرو یا theme mylogin استفاده کنید برای ورود کاربر از محیط سایت نه از طریق wp-login.php

  11. 11 اسفند 1396 ساعت 03:48

    سلام
    ممنون
    توی وردپرسی که گذاشتید کدوم فایل ها دقیقا تغییر داشته که همون ها رو کپی کنیم رو هاست؟

    • رضا حسینی راد
      11 اسفند 1396 ساعت 09:43

      سلام متشکرم
      فایل noodp و یه سری فایل دیگه. بهتره با winmegre ادغام کنید دقیقتر فایل ها رو

  12. 10 اسفند 1396 ساعت 18:11

    با سلام
    من به هاستم دسترسی دارم سی پنل
    یک فایل درسنت کنم و این کدهای معرفی شده رو درون فایل بریزم ایا اسم فایل مهمه چی باشه
    بعد در روت هاست بریززم کنار فایل های وردپرس

    • رضا حسینی راد
      11 اسفند 1396 ساعت 09:47

      درود خیر امکانش نیست باید به ssh دسترسی داشته باشید

      • 14 اسفند 1396 ساعت 11:07

        من هاست اشتراکی دارم یعنی فقط سی پنل و اختصاصی ندارم برای جلوگیری فایل شما را قرار بدم کافیه

        • رضا حسینی راد
          14 اسفند 1396 ساعت 11:43

          درود بله نیازی به انجام مراحل اولیه کار نیست

          • 14 اسفند 1396 ساعت 18:23

            من فایل رو دانلود کردم ولی انگار اپدیت است و نسخه وردپرس من آخرین ویرایش است
            ایا باز هم باید این فایل 12 مگ شما رو دانلود کنم فایل ها رو جایگزین کنم یا لازم نیست

          • رضا حسینی راد
            15 اسفند 1396 ساعت 10:49

            درود با نرم افزار minmerge مقایسه کنید و تغییرات رو اعمال کنید روی وردپرس جدید

  13. 10 اسفند 1396 ساعت 13:18

    از کجا متوجه شیم که این مشکل برای سایت ما دیگه بوجود نمیاد ؟

  14. 10 اسفند 1396 ساعت 13:15

    پایین در قسمت پیشخوان این جمله رو نوشته:
    شما در حال استفاده از یک نگارش در حال توسعه (5.0-alpha-42619) می‌باشید
    آپدیت دیگه نکنیم تا مشکلش رو وردپرس حل کنه؟

  15. 10 اسفند 1396 ساعت 13:04

    سلام
    ممنون آموزش بسیار کاربردی بود. دمتون گرم .

enamad