اوواسپ (OWASP) یا پروژه امنیت برنامههای کاربردی وب باز، یک سازمان غیرانتفاعی است که به نشر اطلاعات مربوط به امنیت برنامهها میپردازد. هدف آنها آشکارسازی امنیت نرمافزار برای آگاهیبخشی به عموم در هنگام تصمیمگیری در مورد امنیت است. اوواسپ هر از گاهی فهرستی از ده خطر امنیتی بحرانی برنامههای کاربردی را تهیه میکند. اما این فهرست صرفاً توسط آنها تهیه نمیشود و از مشارکت کل جامعه وب نیز بهره میبرد. آخرین فهرست آنها در سال ۲۰۱۳ منتشر شد و انتظار میرود نسخهی جدیدتری در سال جاری منتشر شود.
“ده خطر امنیتی بحرانی در برنامههای کاربردی” یکی از موضوعات بسیار حیاتی در طراحی سایت وردپرس است. برنامههای کاربردی و وبسایتهای وردپرسی ممکن است در معرض تهدیدات مختلفی قرار گیرند که میتواند به اطلاعات کاربران و عملکرد سایت آسیب برساند. برخی از خطرات امنیتی بحرانی شامل حملات SQL injection، Cross-Site Scripting (XSS)، و دسترسی غیرمجاز به اطلاعات حساس میباشد. برای جلوگیری از این تهدیدات، طراحان سایت باید از افزونههای امنیتی معتبر استفاده کنند، رمزنگاری دادهها را پیادهسازی کنند و از بهروزرسانیهای منظم برای جلوگیری از آسیبپذیریها بهره ببرند. همچنین، پیادهسازی احراز هویت دو عاملی (2FA) و نظارت مستمر بر فعالیتهای سایت میتواند به جلوگیری از حملات و تهدیدات امنیتی کمک کند. با این تدابیر، طراحی سایت وردپرس میتواند در برابر خطرات امنیتی بحرانی محافظت شود.
در یک وبینار اخیر، جاستین دِیلی مهندس امنیت و ویل وست معمار امنیت شرکت WP Engine این فهرست را بررسی کردیم. در ادامه، خلاصهای از ده ریسک امنیتی برتر OWASP و اقداماتی که میتوانید برای افزایش امنیت سایت وردپرس خود انجام دهید، آمده است.
تزریق
وست گفت: «انواع مختلفی از تزریقها وجود دارد که هر کدام به زیرسیستمهای مختلفی هدفگیری میشوند. مهمترین کاری که این تزریقها انجام میدهند این است که به شما اجازه میدهند از حفاظتها عبور کنید، کارهای غیرمنتظره انجام دهید و به دادههایی که قرار نبوده به آنها دسترسی داشته باشید، دسترسی پیدا کنید.»
برای محافظت از خود در برابر این مشکل، باید نوع و طول ورودی را کنترل کنید، از کاراکترهای ویژه بهدرستی استفاده کنید، تمام فیلدهای ورودی را اعتبارسنجی کنید و از فهرست مجاز اعتبارسنجی ورودی استفاده کنید و از کوئریها یا دستورات پویا اجتناب کنید.
احراز هویت و مدیریت جلسات ضعیف
این زمانی است که حملات از ضعفهای احراز هویت یا مدیریت جلسات سوءاستفاده میکنند و میتوانند به افشای اطلاعات حساس مانند رمزهای عبور منجر شوند.
به همین دلیل، مدیریت و احراز هویت کاربران اهمیت دارد. باید در تمام اقدامات، اعتبارسنجی کاربر و نقش او را انجام دهید و از پرچمهای امن کوکیهای نشست و همچنین توکنهای CSRF در فرمها استفاده کنید.
خطرات امنیتی بحرانی در برنامههای کاربردی تأثیر قابل توجهی بر خدمات سئو وردپرس دارند. موتورهای جستجو مانند گوگل به امنیت سایت اهمیت زیادی میدهند و سایتهای آسیبدیده یا هکشده را ممکن است جریمه کنند یا رتبه آنها را کاهش دهند. از جمله خطرات امنیتی که میتواند بر سئو تأثیر بگذارد، حملات مخرب نظیر دسترسی غیرمجاز به دادههای سایت، اسپمسازی و تغییر محتوای صفحات است. برای محافظت از سایت و حفظ عملکرد سئو، لازم است که خدمات سئو وردپرس بهطور مستمر به روز رسانیهای امنیتی را اجرا کند، از اقدامات پیشگیرانه مانند نصب افزونههای امنیتی و مدیریت صحیح دسترسیها استفاده کند. امنیت سایت علاوه بر اینکه از آسیب به دادهها جلوگیری میکند، به موتورهای جستجو اعتماد بیشتری نسبت به سایت شما میدهد که در نتیجه به رتبهبندی بهتر آن کمک میکند.
حمله تزریق اسکریپت بینسایت
وست گفت: «یکی از جالبترین مشکلاتی که در یک صفحه وب میتوان یافت، اسکریپتنویسی بینسایتی است. یکی از سادهترین راههای بروز این مشکل، وجود هشدار جاوااسکریپت است. این کار مانع از قرار دادن اسکریپت توسط کسی که مجاز به این کار نیست، میشود.»
یک اسکریپت ناخواسته میتواند به سرقت اطلاعات ورود و نشستها، تخریب سایت یا هدایت به سایتهای مخرب منجر شود. برای کاهش این خطر باید ورودیها را پاکسازی، خروجیها را هنگام رندرگذاری کدگذاری کنید و از اعتبارسنجی خروجی مثبت با استفاده از مجموعه کاراکتر صحیح استفاده کنید.
ارجاعهای مستقیم ناامن به شیء
نمایش ناخواستهی فایلهای شما ترسناک است. ارجاعهای مستقیم ناامن به دادهها منجر به دسترسی غیرمجاز میشود. رایجترین موردی که اکثر مردم شنیدهاند، گنجاندن فایل محلی است؛ جایی که یک فایل امن در بخش جلویی یک صفحه وب ظاهر میشود.
میتوانید هنگام استفاده از ارجاعات مستقیم به شیء، کنترل دسترسی را تضمین کنید و بهجای ارجاعات مستقیم از نقشههای ارجاع استفاده نمایید.
نقص پیکربندی امنیتی
اگر پیکربندی امنیتی شما قدیمی یا به درستی تنظیم نشده باشد، ممکن است به دسترسی غیرمجاز به دادهها یا عملکردهای برنامه منجر شود.
سادهترین راه مقابله با پیکربندی ضعیف امنیتی، فرایند مستحکمسازی قابل تکرار و آزمایشپذیر و بهروزرسانی و وصلهگذاری منظم است. اگر در مورد امنیت جدی باشید، احتمال هک شدن شما بسیار کمتر خواهد بود.
افشای اطلاعات حساس
این به دلیل رمزگذاری نادرست اطلاعات حساس مانند مشخصات پرداخت یا اطلاعات شخصی است که میتواند به کلاهبرداری یا بروز رسوایی روابط عمومی برای شرکت منجر شود.
برای رفع این مشکل، باید دادهها را رمزگذاری کنید و از ذخیره اطلاعات حساس خودداری کنید.
کنترل دسترسی سطح تابع ناقص
وست گفت: «یکی از مورد علاقههای من پیدا کردن کنترل دسترسی سطح تابعیِ ناقص است، چون شما از برنامه استفاده میکنید و جاوااسکریپت میگوید “نه، نمیتوانید این کار را انجام دهید”، و بعد اگر جاوااسکریپت برنامه را دور بزنید، میتوانید این کار را انجام دهید.»
دور زدن این محافظت، دسترسی به توابع و دادههای غیرمجاز را با استفاده از اعطای دسترسیهای صریح و اصل عدم دسترسی پیشفرض ممکن میسازد. همچنین، انجام اعتبارسنجی در سمت کلاینت و سرور، حفاظت کاملتری را برای شما فراهم میکند.
جعل درخواست تقاضای تقاضای بینسایت
در این حالت، حمله مرورگر قربانی لاگینشده را مجبور میکند تا یک درخواست HTTP جعلی که ممکن است شامل اطلاعات نشست محلی باشد ارسال کند. این درخواستها سایتهایی را هدف قرار میدهند که اعتبارسنجی درخواست مناسب ندارند.
اگر میخواهید از این مشکل اجتناب کنید، در هر درخواست HTTP یک نشانهی CSRF غیرقابل پیشبینی وارد کنید.
استفاده از مؤلفههایی با آسیبپذیریهای شناختهشده
این کاملا واضح است و احتمالا سادهترین مورد برای اجتناب است. هکرها میتوانند به راحتی از روشهای امنیتی قدیمی عبور کنند. بهسادگی، از نسخههای نرمافزاری که برنامه شما از آنها استفاده میکند، پیگیری کنید و امنیت اجزا را از طریق اطلاعیههای عمومی مانند فهرستهای پستی، کنترل کنید. در نهایت، بهیاد داشته باشید که از سیاستهایی که اجزای نرمافزاری قابل قبول را مشخص میکنند، پیروی کنید. دو برنامه نرمافزاری رایج که در مورد وردپرس در معرض خطر قرار گرفتهاند، Tin Thumb و Rev Slider هستند.
انتقال و هدایت مجدد بدون اعتبارسنجی
اگر سایت شما هک شود، هکرها میتوانند کاربران سایت شما را به سایتهای مخرب هدایت کنند. همچنین، ممکن است شما را فریب دهند تا فکر کنید سایت مخرب، سایت شماست. در صورت امکان، باید از تغییر مسیرها و انتقالها بهطور کامل اجتناب کنید. اگر مجبور به استفاده از آنها هستید، از افزودن پارامترهای پویا برای مقصد خودداری کنید.