در این مقاله رایگان درباره امنیت نرم افزار هسته وردپرس بیشتر بدانید. شما همچنین می توانید آن را دانلود کنید فرمت PDF.
بررسی اجمالی
این سند تجزیه و تحلیل و توضیحی از توسعه نرم افزار اصلی وردپرس و فرآیندهای امنیتی مرتبط با آن و همچنین بررسی امنیت ذاتی است که مستقیماً در نرم افزار ایجاد شده است. تصمیم گیرندگانی که وردپرس را به عنوان یک سیستم مدیریت محتوا یا چارچوب برنامه کاربردی وب ارزیابی می کنند باید از این سند در تجزیه و تحلیل و تصمیم گیری خود استفاده کنند و توسعه دهندگان برای آشنایی با مؤلفه های امنیتی و بهترین شیوه های نرم افزار به آن مراجعه کنند.
اطلاعات موجود در این سند برای آخرین نسخه پایدار نرم افزار، وردپرس 4.7 در زمان انتشار، به روز است، اما باید به جدیدترین نسخه های نرم افزار نیز مرتبط در نظر گرفته شود، زیرا سازگاری به عقب یک تمرکز قوی برای تیم توسعه وردپرس اقدامات امنیتی و تغییرات خاص همانطور که در نسخههای خاص به نرمافزار اصلی اضافه شدهاند، ذکر خواهند شد. قویاً توصیه می شود که همیشه آخرین نسخه پایدار وردپرس را اجرا کنید تا مطمئن شوید که بیشترین تجربه ممکن را داشته باشید.
خلاصه اجرایی
وردپرس یک سیستم مدیریت محتوای متن باز پویا است که برای نیرو بخشیدن به میلیون ها وب سایت، برنامه های کاربردی وب و وبلاگ ها استفاده می شود. در حال حاضر قدرت بیش از 43% از 10 میلیون وب سایت برتر در اینترنت. وردپرس’ قابلیت استفاده، توسعه پذیری و جامعه توسعه بالغ، آن را به انتخابی محبوب و امن برای وب سایت ها در هر اندازه تبدیل کرده است.
وردپرس از زمان آغاز به کار خود در سال 2003 به طور مداوم تحت سخت شدن قرار گرفته است، بنابراین نرم افزار اصلی آن می تواند تهدیدات امنیتی رایج، از جمله لیست 10 برتر شناسایی شده توسط Open Web Application Security Project (OWASP) به عنوان آسیب پذیری های امنیتی رایج را که در این سند مورد بحث قرار گرفته است، بررسی و کاهش دهد. .
تیم امنیتی وردپرس، با همکاری تیم رهبری هسته وردپرس و با حمایت جامعه جهانی وردپرس، برای شناسایی و حل مسائل امنیتی در نرم افزار اصلی موجود برای توزیع و نصب در WordPress.org، و همچنین توصیه و مستندسازی بهترین امنیت کار می کند. تمرین هایی برای نویسندگان پلاگین و تم شخص ثالث.
توسعه دهندگان و مدیران سایت باید به استفاده صحیح از APIهای اصلی و پیکربندی سرور اصلی که منبع آسیب پذیری های رایج بوده اند توجه ویژه ای داشته باشند و همچنین اطمینان حاصل کنند که همه کاربران از رمزهای عبور قوی برای دسترسی به وردپرس استفاده می کنند.
مرور اجمالی وردپرس
وردپرس یک سیستم مدیریت محتوای رایگان و متن باز (CMS) است. این نرم افزار پرکاربردترین نرم افزار CMS در جهان است و قدرت بیشتری دارد 43% از 10 میلیون وب سایت برتر1, به آن تخمین زده است 62% سهم بازار تمام سایت هایی که از CMS استفاده می کنند.
وردپرس تحت مجوز عمومی عمومی (GPLv2 یا جدیدتر) دارای مجوز است که چهار آزادی اصلی را ارائه می دهد و می تواند به عنوان "منشور حقوق" وردپرس در نظر گرفته شود:
- آزادی اجرای برنامه، برای هر هدفی.
- آزادی مطالعه نحوه عملکرد برنامه و تغییر آن برای انجام آن چیزی که می خواهید.
- آزادی توزیع مجدد.
- آزادی توزیع کپی از نسخه های اصلاح شده خود به دیگران.
تیم رهبری هستهی وردپرس
پروژه وردپرس یک سازمان شایسته سالاری است که توسط یک تیم رهبری اصلی اداره می شود و توسط سازنده و توسعه دهنده اصلی آن مت مولنوگ هدایت می شود. این تیم بر تمام جنبه های پروژه، از جمله توسعه هسته، WordPress.org و ابتکارات جامعه نظارت دارد.
تیم رهبری اصلی متشکل از مت مولنوگ، پنج توسعهدهنده اصلی و بیش از دوازده توسعهدهنده اصلی با دسترسی دائمی commit است. این توسعه دهندگان دارای اختیار نهایی در تصمیم گیری های فنی هستند و بحث های معماری و تلاش های پیاده سازی را هدایت می کنند.
وردپرس تعدادی توسعه دهنده دارد. برخی از این افراد مرتکب سابق یا فعلی هستند و برخی نیز احتمالاً مرتکبان آینده هستند. این توسعه دهندگان مشارکت کننده، مشارکت کنندگان قابل اعتماد و کهنه کار وردپرس هستند که احترام زیادی در بین همتایان خود به دست آورده اند. در صورت نیاز، وردپرس دارای committer های مهمان نیز می باشد، افرادی که به آنها اجازه داده شده است، گاهی اوقات برای یک جزء خاص، به صورت موقت یا آزمایشی دسترسی داشته باشند.
توسعه دهندگان اصلی و مشارکت کننده در درجه اول توسعه وردپرس را هدایت می کنند. در هر نسخه، صدها توسعهدهنده کد را به وردپرس اضافه میکنند. این مشارکت کنندگان اصلی داوطلبانی هستند که به نوعی در پایگاه کد اصلی مشارکت دارند.
چرخه انتشار وردپرس
هر چرخه انتشار وردپرس توسط یک یا چند نفر از توسعه دهندگان اصلی وردپرس هدایت می شود. یک چرخه انتشار معمولاً حدود 4 ماه از جلسه اولیه محدوده تا راه اندازی نسخه طول می کشد.
یک چرخه انتشار از الگوی زیر پیروی می کند2:
- فاز 1: برنامه ریزی و ایمن سازی رهبران تیم. این کار در اتاق چت #core در Slack انجام می شود. سرنخ انتشار ویژگیهای نسخه بعدی وردپرس را مورد بحث قرار میدهد. مشارکت کنندگان وردپرس با آن بحث درگیر می شوند. سرنخ انتشار، سرنخ های تیم را برای هر یک از ویژگی ها شناسایی می کند.
- فاز 2: کار توسعه آغاز می شود. رهبران تیم تیم ها را جمع می کنند و روی ویژگی های اختصاص داده شده خود کار می کنند. چت های منظم برای اطمینان از ادامه پیشرفت برنامه ریزی شده است.
- فاز 3: بتا. نسخههای بتا منتشر میشوند و از آزمایشکنندگان بتا خواسته میشود تا شروع به گزارش باگها کنند. از این مرحله به بعد دیگر هیچ تعهدی برای پیشرفت های جدید یا درخواست ویژگی انجام نمی شود. نویسندگان پلاگین و تم شخص ثالث تشویق می شوند تا کد خود را در برابر تغییرات آتی آزمایش کنند.
- فاز 4: کاندید را آزاد کنید. برای رشته های قابل ترجمه از این نقطه به بعد، یک انجماد رشته وجود دارد. هدف کار فقط بر روی رگرسیون ها و مسدود کننده ها است.
- فاز 5: راه اندازی. نسخه وردپرس راه اندازی شده و در مدیریت وردپرس برای به روز رسانی در دسترس است.
شمارهگذاری نسخه و نگارشهای امنیتی
نسخه اصلی وردپرس توسط دو دنباله اول دیکته می شود. به عنوان مثال، 3.5 یک نسخه اصلی است، همانطور که 3.6، 3.7 یا 4.0 است. "وردپرس 3" وجود ندارد” یا “وردپرس 4” و به هر نسخه اصلی با شماره گذاری آن اشاره می شود، به عنوان مثال، “WordPress 3.9.”
نسخه های اصلی ممکن است ویژگی های کاربر و API های توسعه دهنده جدیدی را اضافه کنند. اگرچه معمولاً در دنیای نرم افزار، یک “مهم” نسخه به این معنی است که شما می توانید سازگاری رو به عقب را از بین ببرید، وردپرس تلاش می کند تا هرگز سازگاری رو به عقب را از بین نبرد. سازگاری به عقب یکی از مهمترین فلسفه های پروژه است که هدف آن آسان کردن به روز رسانی برای کاربران و توسعه دهندگان است.
یک نسخه کوچک وردپرس توسط دنباله سوم دیکته می شود. نسخه 3.5.1 یک نسخه کوچک است، همانطور که 3.4.2 است3. یک نسخه جزئی فقط برای رفع آسیبپذیریهای امنیتی و رسیدگی به باگهای حیاتی محفوظ است. از آنجایی که نسخه های جدید وردپرس اغلب منتشر می شوند — هدف این است که هر 4 تا 5 ماه یک نسخه اصلی منتشر شود، و انتشار جزئی در صورت لزوم انجام می شود — فقط نیاز به انتشار عمده و جزئی وجود دارد.
سازگاری با نسخههای قبلی
پروژه وردپرس تعهدی قوی به سازگاری با عقب دارد. این تعهد به این معنی است که تم ها، افزونه ها و کدهای سفارشی با به روز رسانی نرم افزار اصلی وردپرس به کار خود ادامه می دهند و صاحبان سایت را تشویق می کنند تا نسخه وردپرس خود را به آخرین نسخه ایمن به روز نگه دارند.
وردپرس و امنیت
تیم امنیت وردپرس
تیم امنیتی وردپرس تقریباً متشکل است 50 کارشناسان از جمله توسعه دهندگان اصلی و محققان امنیتی — حدود نیمی از کارکنان Automattic (سازندگان WordPress.com، اولین و بزرگترین پلت فرم میزبانی وردپرس در وب) هستند و تعدادی نیز در زمینه امنیت وب کار می کنند. این تیم با محققان امنیتی معروف و قابل اعتماد و شرکت های میزبانی مشاوره می کند3.
تیم امنیتی وردپرس اغلب با تیمهای امنیتی دیگر همکاری میکند تا مسائل مربوط به وابستگیهای رایج را حل کند، مانند رفع آسیبپذیری در تجزیهکننده PHP XML، که توسط XML-RPC API که با وردپرس ارسال میشود، در وردپرس 3.9.2 استفاده میشود.4. این حل آسیبپذیری نتیجه تلاش مشترک تیمهای امنیتی وردپرس و دروپال بود.
مخاطرات امنیتی وردپرس، فرآیند و تاریخچه
تیم امنیتی وردپرس با هشدار سریع به تیم امنیتی در مورد هر گونه آسیب پذیری احتمالی، به افشای مسئولیت پذیر اعتقاد دارد. آسیبپذیریهای امنیتی احتمالی را میتوان از طریق به تیم امنیتی اعلام کرد وردپرس HackerOne5. تیم امنیتی از طریق یک کانال خصوصی Slack با یکدیگر ارتباط برقرار میکند و روی یک Trac محصور شده و خصوصی برای ردیابی، آزمایش و رفع اشکالات و مشکلات امنیتی کار میکند..
هر گزارش امنیتی پس از دریافت تأیید می شود و تیم برای تأیید آسیب پذیری و تعیین شدت آن کار می کند. در صورت تایید، تیم امنیتی پس از آن برنامهریزی میکند تا یک وصله برای رفع مشکل ایجاد کند که میتوان آن را به نسخه بعدی نرمافزار وردپرس متعهد کرد یا بسته به شدت مشکل، آن را به عنوان یک نسخه امنیتی فوری ارائه کرد.
برای انتشار فوری امنیتی، توصیهای توسط تیم امنیتی به سایت خبری WordPress.org6 منتشر میشود که انتشار را اعلام میکند و جزئیات تغییرات را توضیح میدهد. اعتبار افشای مسئولانه یک آسیبپذیری در مشاوره برای تشویق و تقویت گزارشدهی مسئولانه مستمر در آینده داده شده است.
مدیران نرمافزار وردپرس اعلانی را در داشبورد سایت خود مشاهده میکنند تا زمانی که نسخه جدیدی در دسترس است، آن را ارتقا دهند و پس از ارتقای دستی، کاربران به صفحه درباره وردپرس هدایت میشوند که جزئیات تغییرات را نشان میدهد. اگر مدیران بهروزرسانی خودکار پسزمینه را فعال کرده باشند، پس از تکمیل ارتقا، ایمیلی دریافت خواهند کرد.
به روزرسانیهای خودکار در پس زمینه برای نسخههای امنیتی
با شروع نسخه 3.7، وردپرس بهروزرسانیهای پسزمینه خودکار را برای همه نسخههای جزئی7، مانند 3.7.1 و 3.7.2 معرفی کرد. تیم امنیتی وردپرس میتواند پیشرفتهای امنیتی خودکار وردپرس را بدون نیاز به انجام کاری توسط مالک سایت شناسایی، تعمیر و اجرا کند و بهروزرسانی امنیتی بهطور خودکار نصب میشود.
هنگامی که یک بهروزرسانی امنیتی برای نسخه پایدار فعلی وردپرس اعمال میشود، تیم اصلی همچنین بهروزرسانیهای امنیتی را برای همه نسخههایی که قادر به بهروزرسانی پسزمینه هستند (از وردپرس 3.7) اعمال میکند، بنابراین این نسخههای قدیمیتر اما هنوز جدید وردپرس امنیت دریافت خواهند کرد. پیشرفت ها
صاحبان سایتها میتوانند بهروزرسانیهای خودکار پسزمینه را از طریق یک تغییر ساده در فایل پیکربندی خود حذف کنند، اما حفظ عملکرد توسط تیم اصلی و همچنین اجرای آخرین نسخه پایدار وردپرس به شدت توصیه میشود.
۱۰ پروژه برتر اواسپ (OWASP) ۲۰۱۳
پروژه Open Web Application Security Project (OWASP) یک انجمن آنلاین است که به امنیت برنامه های وب اختصاص داده شده است. لیست 10 برتر OWASP8 بر شناسایی جدی ترین خطرات امنیتی برنامه برای طیف گسترده ای از سازمان ها تمرکز دارد. 10 مورد برتر در ترکیب با برآوردهای اجماع از بهرهبرداری، تشخیصپذیری و برآورد تأثیر انتخاب و اولویتبندی میشوند.
بخشهای زیر در مورد APIها، منابع و سیاستهایی که وردپرس برای تقویت نرمافزار اصلی و افزونهها و مضامین شخص ثالث در برابر این خطرات بالقوه استفاده میکند، بحث میکند.
آ۱ - تزریق
مجموعهای از توابع و API در وردپرس وجود دارد که به توسعهدهندگان کمک میکند تا اطمینان حاصل کنند که کد غیرمجاز نمیتواند تزریق شود، و به آنها کمک میکند تا دادهها را اعتبارسنجی و پاکسازی کنند. بهترین شیوه ها و اسناد موجود است9 در مورد نحوه استفاده از این APIها برای محافظت، اعتبارسنجی یا پاکسازی داده های ورودی و خروجی در HTML، URL ها، هدرهای HTTP و هنگام تعامل با پایگاه داده و سیستم فایل. مدیران همچنین میتوانند انواع فایلهایی را که میتوان از طریق فیلترها آپلود کرد، محدودتر کرد.
A2 - احراز هویت شکسته و مدیریت جلسه
نرم افزار اصلی وردپرس حساب های کاربری و احراز هویت را مدیریت می کند و جزئیاتی مانند شناسه کاربری، نام و رمز عبور در سمت سرور و همچنین کوکی های احراز هویت مدیریت می شود. گذرواژهها در پایگاه داده با استفاده از تکنیکهای استاندارد salting و stretch محافظت میشوند. جلسات موجود پس از خروج برای نسخه های وردپرس پس از 4.0 از بین می روند.
آ۳ - تزریق اسکریپت از طریق وب (XSS)
وردپرس طیف وسیعی از عملکردها را ارائه می دهد که می تواند به اطمینان از ایمن بودن داده های ارائه شده توسط کاربر کمک کند10. کاربران معتمد، یعنی مدیران و ویرایشگرها در یک نصب وردپرس، و مدیران شبکه فقط در چند سایت وردپرس، میتوانند HTML یا جاوا اسکریپت بدون فیلتر را در صورت نیاز پست کنند، مانند داخل یک پست یا صفحه. کاربران نامعتبر و محتوای ارسال شده توسط کاربر به طور پیشفرض فیلتر میشود تا موجودیتهای خطرناک را حذف کند، با استفاده از کتابخانه KSES از طریق wp_kses
تابع.
به عنوان مثال، تیم اصلی وردپرس قبل از انتشار وردپرس 2.3 متوجه شد که تابع the_search_query()
توسط اکثر نویسندگان قالب مورد سوء استفاده قرار میگیرد که از خروجی تابع برای استفاده در HTML فرار نمیکنند. در یک مورد بسیار نادر که سازگاری با عقب کمی شکسته شد، خروجی عملکرد در وردپرس 2.3 تغییر کرد تا از قبل فرار کند.
آ۴ - ارجاع مستقیم ناامن به اشیاء (IDOR)
وردپرس اغلب ارجاع مستقیم به شی را ارائه می دهد، مانند شناسه های عددی منحصر به فرد حساب های کاربری یا محتوای موجود در فیلدهای URL یا فرم. در حالی که این شناسه ها اطلاعات مستقیم سیستم را فاش می کنند، وردپرس’ مجوزهای غنی و سیستم کنترل دسترسی از درخواست های غیرمجاز جلوگیری می کند.
آ۵ - پیکربندی اشتباه امنیتی
اکثر عملیات پیکربندی امنیتی وردپرس به یک مدیر مجاز محدود می شود. تنظیمات پیشفرض وردپرس بهطور مداوم در سطح تیم اصلی ارزیابی میشوند و تیم اصلی وردپرس مستندات و بهترین روشها را برای تشدید امنیت برای پیکربندی سرور برای اجرای یک سایت وردپرس11 ارائه میکند.
آ۶ - افشای داده های حساس
پسوردهای حساب کاربری وردپرس بر اساس چارچوب هش کردن رمز عبور PHP قابل حمل 12 سالت و هش می شوند. وردپرس’ سیستم مجوز برای کنترل دسترسی به اطلاعات خصوصی مانند کاربران ثبت نام شده استفاده می شود’ PII، نظر دهندگان’ آدرسهای ایمیل، محتوای منتشر شده بهصورت خصوصی، و غیره. در وردپرس 3.7، یک سنج قدرت رمز عبور در نرمافزار اصلی گنجانده شده است که اطلاعات بیشتری را برای کاربران تنظیم میکند که رمز عبور خود را تنظیم میکنند و نکاتی در مورد افزایش قدرت ارائه میدهند. وردپرس همچنین دارای تنظیمات پیکربندی اختیاری برای نیاز به HTTPS است.
آ۷ - عدم کنترل دسترسی به عملکردها
وردپرس مجوز و مجوزهای مناسب را برای هر درخواست دسترسی در سطح عملکرد قبل از اجرای عمل بررسی می کند. دسترسی یا تجسم URL های مدیریتی، منوها و صفحات بدون احراز هویت مناسب به شدت با سیستم احراز هویت یکپارچه شده است تا از دسترسی کاربران غیرمجاز جلوگیری شود.
آ۸ - جعل درخواست میانوبگاهی (CSRF)
وردپرس از نشانه های رمزنگاری به نام nonces استفاده می کند13, برای تأیید درخواستهای قصد اقدام از کاربران مجاز برای محافظت در برابر تهدیدات بالقوه CSRF. وردپرس یک API برای تولید این توکن ها برای ایجاد و تأیید توکن های منحصر به فرد و موقت ارائه می دهد و توکن به یک کاربر خاص، یک اقدام خاص، یک شی خاص و یک دوره زمانی خاص محدود می شود که می تواند به فرم ها اضافه شود و URL ها در صورت نیاز بهعلاوه، پس از خروج از سیستم، همه nonces باطل میشوند.
A9 - استفاده از مؤلفه هایی با آسیب پذیری های شناخته شده
تیم هسته وردپرس از نزدیک بر تعداد کمی از کتابخانه ها و چارچوب هایی که وردپرس برای عملکرد اصلی با آنها ادغام می کند نظارت می کند. در گذشته تیم اصلی به چندین مؤلفه شخص ثالث کمک کرده است تا آنها را ایمن تر کند، مانند به روز رسانی برای رفع آسیب پذیری بین سایتی در TinyMCE در وردپرس. 3.5.214.
در صورت لزوم، تیم اصلی ممکن است تصمیم بگیرد که اجزای خارجی حیاتی را فورک یا جایگزین کند، مانند زمانی که کتابخانه SWFUpload به طور رسمی با کتابخانه Plupload در نسخه 3.5.2 جایگزین شد و یک فورک امن از SWFUpload توسط تیم امنیتی در دسترس قرار گرفت.<15 برای آن دسته از افزونه هایی که در کوتاه مدت به استفاده از SWFUpload ادامه دادند.
آ۱۰ - تغییر مسیر و فورواردهای بدون اعتبار
وردپرس’ سیستم کنترل دسترسی داخلی و احراز هویت از تلاش برای هدایت کاربران به مقصدهای ناخواسته یا تغییر مسیرهای خودکار محافظت می کند. این قابلیت همچنین از طریق یک API در اختیار توسعه دهندگان افزونه قرار می گیرد, wp_safe_redirect()
16.
سایر خطرات و نگرانی های امنیتی
پردازش حملات XXE (حمله موجودیت خارجی XML)
هنگام پردازش XML، وردپرس بارگذاری موجودیت های XML سفارشی را غیرفعال می کند تا از حملات External Entity و Entity Expansion جلوگیری کند. فراتر از عملکرد اصلی PHP، وردپرس API پردازش XML ایمن اضافی را برای نویسندگان افزونه ارائه نمی دهد.
حملات SSRF (جعل درخواست سمت سرور)
درخواستهای HTTP صادر شده توسط وردپرس برای جلوگیری از دسترسی به آدرسهای IP خصوصی و Loopback فیلتر میشوند. علاوه بر این، دسترسی فقط به برخی از پورت های استاندارد HTTP مجاز است.
امنیت افزونه و پوسته وردپرس
پوسته پیشفرض
وردپرس به یک پوسته نیاز دارد که برای نمایش محتوا در قسمت جلویی فعال باشد. پوسته پیشفرض که با وردپرس اصلی (در حال حاضر "Twenty Twenty-Four") ارائه میشود، به دلایل امنیتی توسط تیم توسعهدهندگان پوسته و تیم توسعه اصلی بهشدت بررسی و آزمایش شده است.
پوسته پیشفرض میتواند به عنوان نقطه شروعی برای توسعه پوسته سفارشی عمل کند، و توسعهدهندگان سایت میتوانند یک پوسته کودک ایجاد کنند که شامل برخی سفارشیسازیها است، اما برای بیشتر قابلیتها و امنیت، به پوسته پیشفرض بازمیگردد. در صورت عدم نیاز، پوسته پیش فرض را می توان به راحتی توسط یک مدیر حذف کرد.
مخازن پوسته و افزونه WordPress.org
تقریباً 50,000+ افزونه و 5,000+ پوسته در سایت WordPress.org فهرست شده است. این پوسته ها و افزونه ها برای گنجاندن ارسال می شوند و قبل از در دسترس قرار دادن آنها در مخزن، توسط داوطلبان به صورت دستی بررسی می شوند.
گنجاندن افزونه ها و پوسته ها در مخزن تضمینی برای عاری بودن آنها از آسیب پذیری های امنیتی نیست. دستورالعملهایی برای نویسندگان افزونه ارائه شده است تا قبل از ارسال برای گنجاندن در مخزن 17 با آنها مشورت کنند، و مستندات گستردهای درباره نحوه انجام توسعه قالب وردپرس 18 در سایت WordPress.org ارائه شده است.
هر افزونه و طرح زمینه این قابلیت را دارد که به طور مداوم توسط صاحب افزونه یا پوسته توسعه داده شود، و هرگونه اصلاح یا توسعه ویژگی بعدی را می توان در مخزن آپلود کرد و با آن افزونه یا طرح زمینه نصب شده با توضیح آن تغییر در دسترس کاربران قرار داد. مدیران سایت از افزونه هایی که باید از طریق داشبورد مدیریت خود به روز شوند مطلع می شوند.
هنگامی که یک آسیبپذیری افزونه توسط تیم امنیتی وردپرس کشف میشود، آنها با نویسنده افزونه تماس میگیرند و برای رفع و انتشار نسخه امن افزونه با یکدیگر همکاری میکنند. در صورت عدم پاسخگویی از سوی نویسنده افزونه یا اگر آسیب پذیری شدید باشد، افزونه/موضوع از فهرست عمومی خارج می شود و در برخی موارد مستقیماً توسط تیم امنیتی رفع و به روز می شود.
تیم مرور پوسته
تیم بررسی پوسته گروهی از داوطلبان است که توسط اعضای کلیدی و معتبر جامعه وردپرس رهبری میشوند و پوسته های ارسال شده برای قرار گرفتن در فهرست رسمی قالب وردپرس را بررسی و تأیید میکنند. تیم بررسی پوسته دستورالعملهای رسمی بازبینی پوسته 19، دادههای تست واحد طرح زمینه 20، و افزونههای بررسی پوسته 21 را حفظ میکند و تلاش میکند تا جامعه توسعهدهنده پوسته وردپرس را در مورد بهترین شیوههای توسعه درگیر و آموزش دهد. گنجاندن در گروه توسط متصدیان اصلی تیم توسعه وردپرس تعدیل می شود.
نقش ارائه دهنده هاست در امنیت وردپرس
وردپرس را می توان روی پلتفرم های زیادی نصب کرد. اگرچه نرم افزار اصلی وردپرس مفاد بسیاری را برای اجرای یک برنامه وب ایمن فراهم می کند که در این سند به آنها پرداخته شد، پیکربندی سیستم عامل و وب سرور زیرین میزبان نرم افزار به همان اندازه برای ایمن نگه داشتن برنامه های کاربردی وردپرس مهم است.
نکته ای در مورد WordPress.com و امنیت وردپرس
WordPress.com بزرگترین نصب وردپرس در جهان است و متعلق به Automattic، Inc. است که توسط Matt Mullenweg، یکی از خالقان پروژه وردپرس، تاسیس شده است. WordPress.com بر روی نرم افزار اصلی وردپرس اجرا می شود و فرآیندهای امنیتی، خطرات و راه حل های خاص خود را دارد22. این سند به امنیت مربوط به نرم افزار وردپرس منبع باز خود میزبانی و قابل دانلود که از WordPress.org موجود است و قابل نصب بر روی هر سروری در جهان است اشاره دارد.
ضمیمه
APIهای هسته وردپرس
رابط برنامه نویسی برنامه هسته وردپرس (API) از چندین فرد تشکیل شده است APIs23, هر کدام عملکردهای درگیر در و استفاده از مجموعه ای از عملکردها را پوشش می دهد. اینها با هم، رابط پروژه را تشکیل میدهند که به افزونهها و پوسته ها اجازه میدهد تا با ایمن و ایمن عملکرد اصلی وردپرس تعامل، تغییر و گسترش دهند.
در حالی که هر API وردپرس بهترین روشها و راههای استاندارد شده برای تعامل و گسترش نرمافزار اصلی وردپرس را ارائه میدهد، APIهای وردپرس زیر برای تقویت و تقویت امنیت وردپرس مناسبتر هستند:
API پایگاهداده
پایگاه داده API24 که در وردپرس 0.71 اضافه شده است، روش صحیحی را برای دسترسی به داده ها به عنوان مقادیر نامگذاری شده که در لایه پایگاه داده ذخیره می شوند، ارائه می دهد.
واسط برنامهنویسی فایلسیستم
سیستم فایل API25، اضافه شده در وردپرس 2.626، در اصل برای وردپرس ایجاد شد’ ویژگی به روز رسانی خودکار خود سیستم فایل API عملکرد مورد نیاز برای خواندن و نوشتن فایلهای محلی را در سیستم فایل خلاصه میکند تا به صورت ایمن در انواع میزبان انجام شود.
این کار را از طریق کلاس WP_Filesystem_Base
و چندین زیر کلاس که بسته به پشتیبانی هاست مجزا، راه های مختلفی برای اتصال به سیستم فایل محلی پیاده سازی می کنند، انجام می دهد. هر پوسته یا افزونهای که نیاز به نوشتن فایلها به صورت محلی دارد، باید این کار را با استفاده از کلاسهای خانواده WP_Filesystem انجام دهد.
HTTP API
HTTP API27، اضافه شده در وردپرس 2.728 و گسترش بیشتر در وردپرس 2.8، درخواست های HTTP را برای وردپرس استاندارد می کند. API کوکیها، کدگذاری و رمزگشایی gzip، رمزگشایی تکهای (اگر HTTP 1.1) و سایر پیادهسازیهای پروتکل HTTP را مدیریت میکند. API درخواست ها را استاندارد می کند، هر روش را قبل از ارسال آزمایش می کند، و بر اساس پیکربندی سرور شما، از روش مناسب برای درخواست استفاده می کند.
مجوزها و API کاربر فعلی
مجوزها و کاربر فعلی API29 مجموعهای از توابع است که به تأیید مجوزها و اختیارات کاربر فعلی برای انجام هر کار یا عملیاتی که درخواست میشود کمک میکند و میتواند از کاربران غیرمجاز در برابر دسترسی یا انجام عملکردهایی فراتر از حد مجاز محافظت کند. توانایی ها.
مجوز محتوای اوراق سفید
The text in this document (not including the WordPress logo or trademark) is licensed under CC0 1.0 Universal (CC0 1.0) Public Domain Dedication. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.
A special thank you to Drupal’s security white paper, which provided some inspiration.
خواندن اضافی
- تازههای وردپرس https://wordpress.org/news/
- نسخههای امنیتی وردپرس https://wordpress.org/news/category/security/
- منابع توسعه دهندگان وردپرس https://developer.wordpress.org/
نویسنده سارا روسو
کمکهای بری آبراهامسون، مایکل آدامز، جان کیو، هلن هو ساند، دیون هولس، مو جانگدا، پل مایورانا
نسخه ۱.۰ مارس March ۲۰۱۵
پانویسها
- [1] https://w3techs.com/, as of December 2019
- [2] https://make.wordpress.org/core/handbook/about/release-cycle/
- [3] https://make.wordpress.org/core/handbook/about/release-cycle/version-numbering/
- [4] https://wordpress.org/news/2014/08/wordpress-3-9-2/
- [5] https://hackerone.com/wordpress
- [6] https://wordpress.org/news/
- [7] https://wordpress.org/news/2013/10/basie/
- [8] https://www.owasp.org/index.php/Top_10_2013-Top_10
- [9] https://developer.wordpress.org/plugins/security/
- [10] https://codex.wordpress.org/Data_Validation#HTML.2FXML
- [11] https://wordpress.org/support/article/hardening-wordpress/
- [12] https://www.openwall.com/phpass/
- [13] https://developer.wordpress.org/plugins/security/nonces/
- [14] https://wordpress.org/news/2013/06/wordpress-3-5-2/
- [15] https://make.wordpress.org/core/2013/06/21/secure-swfupload/
- [16] https://developer.wordpress.org/reference/functions/wp_safe_redirect/
- [17] https://wordpress.org/plugins/developers/
- [18] https://developer.wordpress.org/themes/getting-started/
- [19] https://make.wordpress.org/themes/handbook/review/
- [20] https://codex.wordpress.org/Theme_Unit_Test
- [21] https://wordpress.org/plugins/theme-check/
- [22] https://automattic.com/security/
- [23] https://codex.wordpress.org/WordPress_APIs
- [24] https://developer.wordpress.org/apis/handbook/database/
- [25] https://codex.wordpress.org/Filesystem_API
- [26] https://wordpress.org/support/wordpress-version/version-2-6/
- [27] https://developer.wordpress.org/plugins/http-api/
- [28] https://wordpress.org/support/wordpress-version/version-2-7/
- [29] https://developer.wordpress.org/reference/functions/current_user_can/