مقالات

اجرای امنیت در برنامه های Fore (React)


1. پیشگیری از اسکریپت های سایت متقاطع (XSS)

XSS یک آسیب پذیری رایج است که در آن مهاجم اسکریپت های مخرب را به یک وب سایت قابل اعتماد تزریق می کند. هنگامی که کاربر از سایت بازدید می کند ، اسکریپت انجام می دهد ، به طور بالقوه داده های حساس ، کوکی های جلسه یا ارائه کاربر را سرقت می کند.

اصل OWASP: با تمام داده های ارائه شده توسط کاربر به عنوان غیرقابل اعتماد رفتار کنید. توانبخشی و رمزگذاری ورودی و خروجی برای جلوگیری از تزریق کد.

سناریوی مشکل: برنامه رسانه های اجتماعی به کاربران امکان ایجاد نشریات را می دهد. مهاجم نظری را منتشر می کند که حاوی فیلمنامه مخرب زیر است: اگر برنامه این اظهار نظر را همانطور که هست بیان می کند ، هر کاربری که تماشا می کند ، برای جلسه مهاجم در معرض بیسکویت خود قرار می گیرد.

پاسخ به تبدیل و مثال:

ویژگی امنیتی React برای پیشگیری از XSS اجتناب خودکار آن از محتوای ارائه شده در JSX است. پیش فرض React Dom از هر مقداری تعبیه شده در بریس های فرفری فرار می کند ({}) قبل از تغییر آنها. این یعنی ", // React renders it as a plain string, preventing the script from running. return div>{content}div>; }

حالت کامل صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

توجه داشته باشید dangerouslySetInnerHTML: این ویژگی باید با احتیاط شدید مورد استفاده قرار گیرد و فقط در صورت داشتن دلیل محکمی برای ترسیم HTML خام. اگر نیاز به استفاده از آن دارید ، مطمئن شوید که اولین محتوایی که تزریق می کنید DOMPurifyحرف


2. از جعل درخواست یک درخواست متقابل (CSRF) جلوگیری کنید

CSRF کاربر را برای ارسال درخواست مخرب به سرور از طرف یک کاربر قابل اعتماد و بدون اطلاع آنها وارد می کند.

اصل OWASP: مؤثرترین محافظت CSRF Tokena است. سرور یک نشانگر منحصر به فرد و غیرقابل پیش بینی تولید می کند ، آن را در یک قسمت فرم پنهان شامل می کند و آن را با هر درخواست تغییر دولت (انتشار ، انتشار ، حذف) بررسی می کند.

سناریوی مشکل: وب سایت بانک دارای transfer نقطه پایان که گیرنده و یک مقدار را می گیرد. مهاجم این نقطه پایان را می داند و یک وب سایت جعلی را با فرم پنهان ایجاد می کند که هنگام مراجعه کاربر از صفحه ، به طور خودکار درخواست انتقال را به بانک ارسال می کند. اگر کاربر قبلاً وارد حساب بانکی خود شده باشد ، درخواست تأیید می شود و انتقال به پایان می رسد.

پاسخ به تبدیل و مثال:

در برنامه React مدرن ، این کار بر روی سرور و در تماس های API پردازش می شود ، نه در قسمت جلویی. نقش برنامه React اطمینان از توکین CSRF در درخواست ها است.

  1. در کنار سرور: سرور یک نشانگر CSRF تولید می کند و آن را به مشتری می فرستد ، معمولاً به عنوان کوکی یا بار اولیه در صفحه.
  2. کشور مشتری (واکنش): برنامه React این علامت را می خواند. برای هر یک POST. ، PUTیا DELETE درخواست ، برنامه شامل نشانگر در یک عنوان HTTP سفارشی است (به عنوان مثال ، X-CSRF-Token).
// Example using a CSRF token from a cookie with Axios
import axios from 'axios';
import Cookies from 'js-cookie';

const csrfToken = Cookies.get('csrf-token'); // Assuming the server sent a cookie

// Create an Axios instance to automatically include the CSRF token
const apiClient = axios.create({
  headers: {
    'X-CSRF-Token': csrfToken,
  },
});

async function submitProtectedForm(data) {
  try {
    // This request will now include the CSRF token in the header
    const response = await apiClient.post('/api/protected-action', data);
    return response.data;
  } catch (error) {
    console.error('CSRF protection failed:', error);
    throw error;
  }
}
حالت کامل صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


3. سیاست امنیت محتوا (CSP)

CSP یک لایه اضافی است که به کاهش XSS و سایر حملات تزریق داده کمک می کند. این مشخص می کند که کدام دامنه ها باید منابع معتبر را برای اسکریپت ها ، سبک ها و منابع دیگر در نظر بگیرند.

اصل OWASP: از یک CSP قوی و محدود کننده برای ایجاد “لیست مجوزها” در منابع معتبر استفاده کنید. این عنوان از سرور ارسال می شود.

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

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا