HTML Entities چیست؟ (مبانی امنیت وب)
در زبان HTML، برخی کاراکترها مانند < (کوچکتر)، > (بزرگتر)،" (گیومه) و & (امپرسند) نقش ساختاری دارند. اگر بخواهید این کاراکترها را دقیقاً به همین شکل در متن صفحه نمایش دهید، مرورگر گیج شده و سعی میکند آنها را به عنوان کد تفسیر کند. برای حل این مشکل، از HTML Entities استفاده میکنیم که کدهای جایگزین استانداردی هستند که به مرورگر میگویند: "لطفاً این علامت را فقط نمایش بده و اجرا نکن."
جدول کاراکترهای حیاتی (Reserved Characters)
<Less Than>Greater Than&Ampersand"Double Quote'Single Quote* نکته: برای آپاستروف (') بهتر است از کد عددی ' استفاده کنید، زیرا ' در HTML4 استاندارد نبود و ممکن است در مرورگرهای بسیار قدیمی (IE) درست کار نکند.
اهمیت در امنیت (XSS Protection)
یکی از خطرناکترین حملات وب، Cross-Site Scripting (XSS) است. فرض کنید در بخش نظرات سایت، کاربری کد زیر را بنویسد:
اگر سایت شما ورودی را Encode نکند، این کد در مرورگر همه بازدیدکنندگان اجرا میشود! با استفاده از این ابزار و تبدیل آن به:
کد مخرب خنثی شده و فقط به صورت متن بیخطر نمایش داده میشود.
سوالات متداول
آیا باید حروف فارسی را هم Encode کنم؟▼
انکد مضاعف (Double Encoding) چیست؟▼
& تبدیل به & میشود و اگر دوباره انکد شود به &amp; تبدیل میگردد که باعث نمایش کدهای زشت در صفحه میشود.