در حال بارگذاری...
تست بررسیهای یکپارچگی (Integrity Checks) در منطق تجاری برای اطمینان از اینکه دادهها در طول فرآیند تغییر نمیکنند.
اهداف این درس
بررسی یکپارچگی (Integrity Checks) شامل اطمینان از این است که دادهها در طول فرآیند تغییر نمیکنند. این شامل بررسی عدم تغییر قیمت، موجودی، وضعیت سفارش و سایر دادههای حساس است.
اطمینان از اینکه دادهها در طول چرخه حیات خود تغییر نمیکنند و دقیق و قابل اعتماد هستند.
| نقطه ضعف | توضیح | تأثیر |
|---|---|---|
| قیمت در کلاینت | ذخیره قیمت در فرم یا cookie | تغییر قیمت توسط مهاجم |
| موجودی در session | ذخیره موجودی در session کاربر | خرید بیش از موجودی |
| وضعیت سفارش | تغییر وضعیت توسط کاربر | تأیید سفارش بدون پرداخت |
| ID کاربر | استفاده از ID قابل حدس | دسترسی به حساب دیگران |
تمام دادههایی که باید یکپارچه بمانند شناسایی کنید: قیمت، موجودی، وضعیت سفارش، نقش کاربری و اطلاعات پرداخت.
1// درخواست اصلی2POST /api/checkout3{"product_id": 1, "price": 10000}45// درخواست تغییر یافته6POST /api/checkout7{"product_id": 1, "price": 100}89// اگر سرور قیمت را از درخواست بخواند،10// مهاجم میتواند قیمت را تغییر دهد.هشدار
هرگز به دادههای ارسالی از کلاینت اعتماد نکنید. تمام دادههای حساس باید در سمت سرور مدیریت شوند.
توصیه عملی
از الگوی Server-Side State Management استفاده کنید: تمام وضعیتها در سمت سرور مدیریت شوند.
دادههای حساس باید در سمت سرور مدیریت شوند، نه کلاینت.
امضای دادهها (HMAC) از تغییر غیرمجاز جلوگیری میکند.
هرگز قیمت یا موجودی را در کلاینت ذخیره نکنید.
بررسی یکپارچگی باید در هر مرحله از فرآیند انجام شود.
کدام روش بهترین حفظ یکپارچگی قیمت در سفارش است؟
چرا ذخیره قیمت در کلاینت خطرناک است؟
زیرا مهاجم میتواند قیمت را قبل از ارسال به سرور تغییر دهد. قیمت باید همیشه از پایگاه داده خوانده شود.
نقش HMAC در حفظ یکپارچگی چیست؟
HMAC یک امضای رمزنگاری است که از تغییر دادهها جلوگیری میکند. اگر داده تغییر کند، امضا نامعتبر میشود.