دسته بندی
Cross-Site Attacks
باگ Cross-Site Scripting (XSS) یک نوع باگ امنیتی است که در برنامههای وب رخ میدهد. در XSS، حملهکننده با درج کدهای مخرب یا اسکریپتها در صفحات وب، میتواند اجرای این کدها را بر روی مرورگر کاربران دیگر فراهم کند. این کار میتواند منجر به دزدیدن کوکیها، اطلاعات حساب کاربری و حتی اجرای دستورات مخرب بر روی دستگاه کاربران شود.مثال:
فرض کنید یک وبسایت دارای صفحهای است که کاربران میتوانند نظرات خود را ارسال کنند و این نظرات در صفحه نمایش داده میشوند. صفحه
HTML به صورت زیر است:<body>حملهکننده میتواند کد
<h1>Comments</h1>
<div id="comments">
<?php
$comment = $_POST['comment'];
echo $comment;
?>
</div>
<form action="" method="post">
<textarea name="comment"></textarea>
<br>
<input type="submit" value="Submit">
</form>
</body>
XSS را در فیلد نظرات وارد کند. به عنوان مثال:<script>وقتی کاربر دیگری صفحه را باز میکند و این نظر را مشاهده میکند، اسکریپت ناامن اجرا میشود و یک پیغام هشدار نمایش داده میشود.
alert('You have been hacked!');
</script>
روش های جلوگیری:
1- برنامهنویسان باید ورودیها را با دقت فیلترسازی و تقویت کنند. این کار شامل حذف و یا اسکیپ کردن کدهای خطرناک است.
2- همواره برای نمایش مقادیر متغیرها در صفحات
HTML از نقلقول دوگانه استفاده کنید.3- استفاده از کتابخانه ها مانند
HTML Purifier که یک کتابخانه PHP است که از HTML ناامن و ویژگیهای خطرناک جلوگیری میکند و امنیت نمایش محتوا را تضمین میکند.می توانید برای زبان های دیگر جست و جو کنید و با ما به اشتراک بگزارید.4- اعتبارسنجی دقیق اجازهها و محدودیتهایی را برای منابع اجرایی (
scripts, stylesheets و غیره) در صفحات HTML مشخص میکند.5- اجازه دسترسی به کوکیها را به دامنههای مشخص محدود کنید تا از کلاهبرداری کوکی جلوگیری شود.
6- برای کوکیهایی که توسط جاوااسکریپت به دسترسی نیاز ندارند، از
HTTP Only Flag استفاده کنید. همچنین برای کوکیهایی که باید از طریق ارتباط امن انتقال یابند، از Secure Flag استفاده کنید..