این ابزار درست کار نمی‌کند؟

دربارهٔ ابزار «رمزگذار کاراکترهای HTML آنلاین»

این ابزار کاراکترهایی با معنی خاص در HTML را به معادل‌های موجودیت آنها تبدیل می‌کند. < به &lt;، > به &gt;، & به &amp;، " به &quot; و غیره تبدیل می‌شود. نتیجه را می‌توان با خیال راحت در HTML تعبیه کرد بدون اینکه به عنوان نشانه‌گذاری تفسیر شود.

رمزگذاری HTML برای جلوگیری از حملات Cross-Site Scripting (XSS) هنگام نمایش محتوای ارسالی توسط کاربر در صفحه وب حیاتی است. اگر تگ‌های <script> را قبل از رندر کردن رمزگذاری نکنید، کاربران مخرب می‌توانند جاوا اسکریپت را در مرورگرهای کاربران دیگر تزریق و اجرا کنند.

ابزار همچنین از رمزگذاری موجودیت عددی (&#x3C; به جای &lt;) و رمزگذاری موجودیت نامی برای کاراکترهای غیر ASCII (é به &eacute; تبدیل می‌شود) پشتیبانی می‌کند، به شما اجازه می‌دهد قالبی را که بهترین مناسب با مورد استفاده شما است انتخاب کنید.

چطور از این ابزار استفاده کنم؟

چطور کاراکترهای ویژه را به‌عنوان HTML entity escape کنم؟

  1. متن را بچسبانید

    رشتهٔ ساده را در فیلد «Text» قرار دهید. ابزار هر کاراکتری که داخل HTML معنا دارد را encode می‌کند: `<`، `>`، `&`، `"`، `'` به `&lt;`، `&gt;`، `&amp;`، `&quot;`، `&#39;` تبدیل می‌شوند.

  2. «اجرا» را بزنید

    خروجی یک فیلد `encoded` است. خروجی برای paste در HTML body text، attribute value (وقتی در `"` پیچیده شود) و اکثر templating engineهایی که auto-escape نمی‌کنند ایمن است.

  3. آنچه پوشش نمی‌دهد

    JavaScript string literal، CSS selector و URL component قوانین escape متفاوتی دارند — برای آن‌ها از HTML entity encoding استفاده نکنید. برای attribute value مانند `onclick="…"` به escape JS داخل رشته هم نیاز دارید.

  4. Round-tripping

    خروجی را از `html-entity-decoder` بگذرانید تا ایمنی round-trip را تأیید کنید. encoding تکراری double-escape می‌کند: `&amp;` به `&amp;amp;` تبدیل می‌شود. اگر `&amp;lt;` را در HTML رندرشده می‌بینید، چیزی که قبلاً encode شده دوباره encode شده است.