دسته بندی
Access Control and Data Exposure
باگ Cross-Origin Resource Sharing (CORS) Misconfiguration یک آسیبپذیری مرتبط با تنظیمات امنیتی در برنامههای وب است که میتواند منجر به دسترسی غیر مجاز به منابع مختلف (مثل فایلهای جاوا اسکریپت یا دادههای API) در دامنههای دیگر شود. این امر ممکن است باعث حملات امنیتی نظیر Cross-Site Request Forgery (CSRF) و دسترسی غیرمجاز از طریق Cross-Site Scripting (XSS) شود.مثال:
فرض کنید شما یک وبسایت با دامنهی
example.com دارید که از یک API با دامنهی api.example.org برای دریافت دادهها استفاده میکند. برای اجازه دسترسی به API، باید تنظیمات CORS در سرور API به درستی تنظیم شده باشد. اما اگر این تنظیمات نادرست باشد، حملهکننده میتواند از جاوااسکریپت نادرست در وبسایتهای مخرب استفاده کند تا اطلاعات محرمانهی دیگر کاربران یا حتی دسترسی به حساب کاربری آنها را به دست آورد.// attacker-site.com - Attacking siteاگر سرور
<script>
fetch('https://api.example.org/user_data', {
method: 'GET',
headers: {
'Origin': 'https://attacker-site.com'
}
})
.then(response => response.json())
.then(data => {
// Performing malicious operations with received data
})
.catch(error => {
// Error handling
});
</script>
API بهطور نادرست تنظیمات CORS خود را تنظیم کند و همهی منابع به صورت دسترسیپذیر (wildcard) مجاز شوند (مثل Access-Control-Allow-Origin: *)، کد مخرب اجازه دسترسی به دادههای کاربران از دامنهی مخرب خود را دریافت میکند.روشهای جلوگیری :
1- سرور
API را بهطور دقیق تنظیم کنید تا تنها به دامنههای مجاز به دسترسی دسترسی داشته باشد.Access-Control-Allow-Origin: https://example.com2- به جای استفاده از '
*' (همه) در هدر Access-Control-Allow-Origin، از دامنههای مجاز به دسترسی خودتان استفاده کنید.Access-Control-Allow-Origin: https://example.com3- فقط به دامنههای مجاز دسترسی دهید و دامنههای غیرمجاز را محدود کنید.
Access-Control-Allow-Origin: https://example.com, https://trusted-domain.com4- تنظیمات
CORS را دورهای بررسی کنید و اطمینان حاصل کنید که تنظیمات درستی دارید و منابع مجاز به دسترسی به API شما دسترسی دارند..