§

ಇನ್‌ಪುಟ್

ಮೋಡ್
ಎಂಟಿಟಿ ಶೈಲಿ
ಎನ್‌ಕೋಡ್ ವ್ಯಾಪ್ತಿ
§

ಔಟ್‌ಪುಟ್

ಭಾರತೀಯ ವೆಬ್ ತಂಡಗಳು ಬಳಕೆದಾರ-ಒದಗಿಸಿದ ಟೆಕ್ಸ್ಟ್ ಸರ್ವರ್-ರೆಂಡರ್ ಮಾಡಿದ ಪೇಜ್ ಅಥವಾ ಇಮೇಲ್ ಟೆಂಪ್ಲೇಟ್‌ನಲ್ಲಿ ಇಳಿದಾಗ HTML entity ಎನ್‌ಕೋಡಿಂಗ್ ಬಳಸುತ್ತಾರೆ. OWASP ನ XSS ತಡೆಗಟ್ಟುವಿಕೆ ಶೀಟ್ HTML ಬಾಡಿ ಸಂದರ್ಭಕ್ಕೆ Entity ಎನ್‌ಕೋಡಿಂಗ್ ಅನ್ನು ನಿಯಮ #1 ಎಂದು ಪಿನ್ ಮಾಡುತ್ತದೆ. ಈ ಇನ್-ಬ್ರೌಸರ್ ಕೊಡೆಕ್ `htmlspecialchars` ಅಥವಾ React ನ ಆಟೋ-ಎಸ್ಕೇಪ್ ಉತ್ಪಾದಿಸುವ ಉತ್ತರವನ್ನೇ ಕೊಡುತ್ತದೆ.

HTML entity ಎನ್‌ಕೋಡಿಂಗ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ

HTML ಎಂಟಿಟಿ ಒಂದು ಅಕ್ಷರ ಉಲ್ಲೇಖ ಬ್ರೌಸರ್ ಮರಳಿ ಒಂದು ಅಕ್ಷರಕ್ಕೆ ಪಾರ್ಸ್ ಮಾಡುತ್ತದೆ. ಐದು ಮೀಸಲಾದ HTML ಅಕ್ಷರಗಳು (<, >, &, ", ') ಟೆಕ್ಸ್ಟ್ HTML ಆಗಿ ರೆಂಡರ್ ಮಾಡಿದಾಗ ಯಾವಾಗಲೂ ಎನ್‌ಕೋಡಿಂಗ್ ಅಗತ್ಯ.

  1. ಮೋಡ್ ಮತ್ತು ವ್ಯಾಪ್ತಿ ಆಯ್ಕೆ ಮಾಡಿ. ಎನ್‌ಕೋಡ್ ಮೋಡ್ ನಿಮ್ಮ ಇನ್‌ಪುಟ್ ಅನ್ನು ಅಕ್ಷರದಿಂದ ಅಕ್ಷರಕ್ಕೆ ನಡೆಯುತ್ತದೆ. ಡಿಕೋಡ್ ಮೋಡ್ ಎಂಟಿಟಿ ಮಾದರಿಗಳನ್ನು ಹುಡುಕಿ ನಡೆಯುತ್ತದೆ. ಸ್ಕೋಪ್ ಟಾಗಲ್ ಕೇವಲ ಐದು HTML-ಸೇಫ್ ಅಕ್ಷರಗಳು ಎನ್‌ಕೋಡ್ ಮಾಡಲ್ಪಡುತ್ತವೆಯೇ ಅಥವಾ ಪ್ರತಿ non-ASCII ಕೋಡ್ ಪಾಯಿಂಟ್ ಸಹ ಮರು-ಬರೆಯಲ್ಪಡುತ್ತದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸುತ್ತದೆ.
  2. ಎಂಟಿಟಿ ಶೈಲಿ ಆಯ್ಕೆ ಮಾಡಿ. ಹೆಸರಿಸಿದ ಘಟಕಗಳು (&copy;) ಮೂಲ ಸಂಕೇತದಲ್ಲಿ ಚೆನ್ನಾಗಿ ಓದಲ್ಪಡುತ್ತವೆ. ದಶಮಾಂಶ ಉಲ್ಲೇಖಗಳು (&#169;) ಮತ್ತು ಷೋಡಶಮಾಂಶ ಉಲ್ಲೇಖಗಳು (&#xA9;) ಹೆಸರು ಅಗತ್ಯವಿಲ್ಲದೇ ಪ್ರತಿ Unicode ಕೋಡ್ ಪಾಯಿಂಟ್ ಒಳಗೊಳ್ಳುತ್ತವೆ. ಹಳೆಯ ಇ-ಮೇಲ್ ಗ್ರಾಹಕಗಳು ಮತ್ತು XML ವಿಶ್ಲೇಷಕಗಳು ಸಂಖ್ಯಾ ರೂಪಗಳನ್ನು ಆದ್ಯತೆ ನೀಡುತ್ತವೆ.
  3. ಇನ್‌ಪುಟ್ ನಡೆಯಿರಿ. ಎನ್‌ಕೋಡ್‌ನಲ್ಲಿ, ನಾವು ಪ್ರತಿ ಕೋಡ್ ಪಾಯಿಂಟ್ ಓದಿ ಸುಮಾರು 200 ಸಾಮಾನ್ಯ named entities ನ ಅಂತರ್ನಿರ್ಮಿತ ಟೇಬಲ್‌ನ ವಿರುದ್ಧ ನೋಡುತ್ತೇವೆ. ಮಿಸ್‌ಗಳು numeric ಗೆ ಫಾಲ್‌ಬ್ಯಾಕ್ ಮಾಡುತ್ತವೆ. ಡಿಕೋಡ್‌ನಲ್ಲಿ, ನಾವು &name;, &#NNN;, ಮತ್ತು &#xHH; ಅನ್ನು ಒಂದೇ ಪಾಸ್‌ನಲ್ಲಿ ಹೊಂದಿಸುವ ಒಂದೇ regex ನೊಂದಿಗೆ ಸ್ಕ್ಯಾನ್ ಮಾಡುತ್ತೇವೆ.
  4. ಅಕ್ಷರಗಳಿಗೆ ಮ್ಯಾಪ್ ಮಾಡಿ. ಹೆಸರಿಸಿದ ಹೊಂದಾಣಿಕೆಗಳು ವಿಪರ್ಯಾಸ ಕೋಷ್ಟಕದ ಮೂಲಕ ಪರಿಹರಿಸುತ್ತವೆ. ಸಂಖ್ಯಾ ಹೊಂದಾಣಿಕೆಗಳು ಆಧಾರ 10 ಅಥವಾ ಆಧಾರ 16 ಬಳಸಿ String.fromCodePoint ಮೂಲಕ ಹೋಗುತ್ತವೆ. ಅಪರಿಚಿತ ಹೆಸರಿಸಿದ ಘಟಕಗಳನ್ನು ಹಾಗೇ ಬಿಡಲಾಗುತ್ತದೆ, ಇದರಿಂದ ಅಪೂರ್ಣ ಇನ್‌ಪುಟ್ ನಷ್ಟವಿಲ್ಲದೇ ಮೂಲ ಸ್ಥಿತಿಗೆ ಮರಳಬಹುದು.
  5. ಲೈವ್ ಮೋಡ್. ಲೈವ್ ಮೋಡ್ ಟಾಗಲ್ ಮಾಡಿ ಮತ್ತು ಪ್ರತಿ ಕೀ ಒತ್ತು 150 ms ಡಿಬೌನ್ಸ್‌ನೊಂದಿಗೆ ಪರಿವರ್ತನೆ ಮರು-ಚಲಾಯಿಸುತ್ತದೆ. ಸ್ನಿಪೆಟ್ ಟ್ವೀಕ್ ಮಾಡಿ ಟೆಂಪ್ಲೇಟ್‌ಗೆ ಪೇಸ್ಟ್ ಮಾಡುವ ಮೊದಲು ತಕ್ಷಣ ಪ್ರತಿಕ್ರಿಯೆ ಬಯಸಿದಾಗ ಸಹಾಯಕ.

HTML entities ಎನ್‌ಕೋಡ್ ಏಕೆ ಮಾಡಬೇಕು

  • ಬಳಕೆದಾರ ಇನ್‌ಪುಟ್ ಲೇಔಟ್ ಮುರಿಯದಂತೆ ತಡೆಯಿರಿ. ಬಳಕೆದಾರ ಕಾಮೆಂಟ್ ಬಾಕ್ಸ್‌ನಲ್ಲಿ ತಪ್ಪಿ < ಟೈಪ್ ಮಾಡಿದಾಗ, ಆ ಟೆಕ್ಸ್ಟ್ ನೇರ HTML ನಲ್ಲಿ ಹಾಕಿದರೆ ಪುಟದ ಉಳಿದ ಭಾಗ ಮರು-ಬರೆಯಲ್ಪಡುತ್ತದೆ. ಮೊದಲು ಮೀಸಲಾದ ಅಕ್ಷರಗಳನ್ನು ಎನ್‌ಕೋಡ್ ಮಾಡಿದರೆ ಬ್ರೌಸರ್ ಅದನ್ನು ಟ್ಯಾಗ್ ಶುರುವಾಗಿ ಪಾರ್ಸ್ ಮಾಡುವ ಬದಲು ಅಕ್ಷರ ರೆಂಡರ್ ಮಾಡುತ್ತದೆ.
  • ಅಟ್ರಿಬ್ಯೂಟ್ ಮೌಲ್ಯಗಳನ್ನು ಮಾನ್ಯ ಇಡಿ. HTML ವಿಶೇಷಣದೊಳಗೆ ಉದ್ಧೃತ ತಂತಿ ಎಂಬೆಡ್ ಮಾಡಲು ಎಂಬೆಡ್ ಮಾಡಿದ ಉದ್ಧರಣ ಚಿಹ್ನೆಯನ್ನು &quot; (ದ್ವಿ-ಉದ್ಧೃತ ವಿಶೇಷಣಗಳಿಗೆ) ಅಥವಾ &#39; (ಏಕ-ಉದ್ಧೃತಕ್ಕೆ) ನಿಂದ ಬದಲಾಯಿಸಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ ವಿಶ್ಲೇಷಕ ವಿಶೇಷಣವನ್ನು ಮೊದಲೇ ಮುಚ್ಚಿ ಉಳಿದ ಸಾಲು ಅನಪೇಕ್ಷಿತ ಗುರುತು ಆಗಿಬಿಡುತ್ತದೆ.
  • ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾದಲ್ಲಿ ಆಕಸ್ಮಿಕ HTML ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ. ಲಾಗ್‌ಗಳು, ಬಗ್ ವರದಿಗಳು ಮತ್ತು ಚಾಟ್ ಎಕ್ಸ್‌ಪೋರ್ಟ್‌ಗಳಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ನಿಜ ಆಂಗಲ್ ಬ್ರ್ಯಾಕೆಟ್‌ಗಳು ಮತ್ತು ಆಂಪರ್‌ಸ್ಯಾಂಡ್‌ಗಳಿರುತ್ತವೆ. ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಪೇಜ್‌ಗೆ ಪೇಸ್ಟ್ ಮಾಡುವ ಮೊದಲು ಡಂಪ್ ಅನ್ನು entity-encode ಮಾಡಿ ಆ ನಕಲು ರೆಂಡರರ್ ಅನ್ನು ಟ್ರಿಗರ್ ಮಾಡದೇ ಟೆಕ್ಸ್ಟ್ ಆಗಿ ಗೋಚರಿಸುತ್ತದೆ.
  • ಕೋಡ್ ಸ್ನಿಪೆಟ್‌ಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಿ. ಬ್ಲಾಗ್ ಪೋಸ್ಟ್, ಇಮೇಲ್, ಅಥವಾ Slack ಸಂದೇಶದಲ್ಲಿ <script>alert(1)</script> ಗಂತಹ ಉದಾಹರಣ ಟ್ಯಾಗ್ ಪೋಸ್ಟ್ ಮಾಡಲು ಸ್ನಿಪೆಟ್ ಚಲಿಸುವ ಬದಲು ಪ್ರದರ್ಶಿಸಲು ಬ್ರ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಎನ್‌ಕೋಡ್ ಮಾಡಬೇಕು.

ಸಾಮಾನ್ಯ ಅನ್ವಯಗಳು

Entity ಎನ್‌ಕೋಡಿಂಗ್ ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ ಕಚ್ಚಾ ಟೆಕ್ಸ್ಟ್ HTML ಗೆ ಸಂಯೋಜಿಸಲ್ಪಟ್ಟಾಗ ಎಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ — ಫ್ರೇಮ್‌ವರ್ಕ್ ಸಾಮಾನ್ಯವಾಗಿ ಅದನ್ನು ನಿರ್ವಹಿಸಿದರೂ, ಮ್ಯಾನ್ಯುಯಲ್ ಉಪಕರಣ ನಿರ್ವಹಿಸದ ಕ್ಷಣಗಳಲ್ಲಿ ಉಪಯುಕ್ತ.

  • ಸರ್ವರ್-ರೆಂಡರ್ ಟೆಂಪ್ಲೇಟ್‌ಗಳು: Jinja2, ERB, Twig ಮತ್ತು Handlebars ಡೀಫಾಲ್ಟ್‌ನಲ್ಲಿ ಆಟೋ-ಎಸ್ಕೇಪ್ ಮಾಡುತ್ತವೆ, ಆದರೆ raw ಬ್ಲಾಕ್‌ಗಳು ಮತ್ತು `safe` ಮಾರ್ಕರ್‌ಗಳು ಅದನ್ನು ಆಫ್ ಮಾಡುತ್ತವೆ — ಕೊಡೆಕ್ ಎಸ್ಕೇಪ್ ಏನು ಉತ್ಪಾದಿಸುತ್ತಿತ್ತು ಎಂದು ದೃಢೀಕರಿಸಲು ಬಿಡುತ್ತದೆ.
  • ಇಮೇಲ್ ಮತ್ತು ನ್ಯೂಸ್‌ಲೆಟರ್ ರಚನೆ: ಅನೇಕ ESP ಟೆಂಪ್ಲೇಟಿಂಗ್ ಎಂಜಿನ್‌ಗಳು ಮರ್ಜ್ ಫೀಲ್ಡ್‌ಗಳನ್ನು ಆಟೋ-ಎಸ್ಕೇಪ್ ಮಾಡುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಬಳಕೆದಾರ-ಒದಗಿಸಿದ ಹೆಸರುಗಳಲ್ಲಿ ಸ್ಮಾರ್ಟ್ ಕೋಟ್‌ಗಳು ಮತ್ತು ಕಾಪಿರೈಟ್ ಗ್ಲಿಫ್‌ಗಳಿಗೆ ಪೂರ್ವ-ಎನ್‌ಕೋಡಿಂಗ್ ಅಗತ್ಯ.
  • ದಾಖಲಾತಿ ಮತ್ತು ಕೋಡ್ ಮಾದರಿಗಳು: Markdown ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ ಅಥವಾ ಸ್ಥಿರ-ಸೈಟ್ ಸ್ನಿಪೆಟ್‌ಗೆ ಉದಾಹರಣ HTML ಟ್ಯಾಗ್ ಪೇಸ್ಟ್ ಮಾಡಲು ರೆಂಡರರ್ ಅದನ್ನು ಗೋಚರ ಟೆಕ್ಸ್ಟ್ ಆಗಿ ಪರಿಗಣಿಸಲು ಬ್ರ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಎನ್‌ಕೋಡ್ ಮಾಡಬೇಕು.

ಕೆಲಸ ಮಾಡಿದ ಉದಾಹರಣೆ

ಮೋಡ್ Encode ಗೆ, ಶೈಲಿ Named, ಸ್ಕೋಪ್ Minimal ಗೆ ಹೊಂದಿಸಿ <script>alert('hi')</script> ಅನ್ನು ಇನ್‌ಪುಟ್‌ಗೆ ಪೇಸ್ಟ್ ಮಾಡಿ. ಔಟ್‌ಪುಟ್ &lt;script&gt;alert(&#39;hi&#39;)&lt;/script&gt; ಓದುತ್ತದೆ. ಡಿಕೋಡ್ ಮೋಡ್‌ಗೆ ಬದಲಾಯಿಸಿ, ಎನ್‌ಕೋಡ್ ಮಾಡಿದ ಸ್ಟ್ರಿಂಗ್ ಮರಳಿ ಪೇಸ್ಟ್ ಮಾಡಿ, ಮತ್ತು ಮೂಲ ಟ್ಯಾಗ್ ಅಖಂಡವಾಗಿ ಬರುತ್ತದೆ.

FAQ

HTML entities ಎಂದರೇನು?

HTML entities ಅಕ್ಷರ ಉಲ್ಲೇಖಗಳು ಬ್ರೌಸರ್ ಪುಟ ಪಾರ್ಸ್ ಮಾಡಿದಾಗ ಒಂದು ಅಕ್ಷರಕ್ಕೆ ಬದಲಾಯಿಸುತ್ತದೆ. ಅವು ಮೂರು ರೂಪಗಳಲ್ಲಿ ಬರುತ್ತವೆ: named (& ಗೆ &amp; ಗಂತಹ), decimal numeric (&#38;), ಮತ್ತು hex numeric (&#x26;). ಐದು ಮೀಸಲಾದ HTML ಅಕ್ಷರಗಳು (<, >, &, ", ') ಟೆಕ್ಸ್ಟ್ HTML ನಲ್ಲಿ ಹಾಕಿದಾಗ ಯಾವಾಗಲೂ ಎನ್‌ಕೋಡಿಂಗ್ ಅಗತ್ಯ.

ಹೆಸರಿಸಿದ ಮತ್ತು ಸಂಖ್ಯಾತ್ಮಕ ಎಂಟಿಟಿಗಳನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕು?

ಮೂಲ ಸಂಕೇತ ಸ್ಪಷ್ಟವಾಗಿ ಓದಬೇಕಾದಾಗ ಹೆಸರಿಸಿದ ಘಟಕಗಳನ್ನು ಬಳಸಿ (ಟೆಂಪ್ಲೇಟ್‌ನಲ್ಲಿ &copy; ಪರಿಶೀಲಿಸುವ ವ್ಯಕ್ತಿ ಅದನ್ನು ತಕ್ಷಣ ಗ್ರಹಿಸುತ್ತಾರೆ). ಸ್ವೀಕರಿಸುವ ಘಟಕ ಹಳೆಯ ಅಥವಾ ಕಟ್ಟುನಿಟ್ಟಾದಾಗ ಸಂಖ್ಯಾ (ದಶಮಾಂಶ ಅಥವಾ ಷೋಡಶಮಾಂಶ) ಬಳಸಿ — XML ವಿಶ್ಲೇಷಕಗಳು, ಹಳೆಯ ಇ-ಮೇಲ್ ಗ್ರಾಹಕಗಳು, ಮತ್ತು ಕೆಲವು ಫೀಡ್ ಓದುಗರು HTML5 ಹೆಸರಿಸಿದ ಘಟಕಗಳ ಸಣ್ಣ ಉಪಗಣ ಮಾತ್ರ ಗುರುತಿಸುತ್ತಾರೆ, ಆದರೆ ಸಂಖ್ಯಾ ರೂಪಗಳನ್ನು ಎಲ್ಲರೂ ಗುರುತಿಸುತ್ತಾರೆ. ಭದ್ರತಾ-ಕೇಂದ್ರಿತ ಸಂದರ್ಭಗಳಲ್ಲಿ ಷೋಡಶಮಾಂಶ ಸಾಮಾನ್ಯವಾಗಿ ಆದ್ಯತೆ ಪಡೆಯುತ್ತದೆ ಏಕೆಂದರೆ ಅದು ವಿಶೇಷಣ ದಾಖಲೆಗಳಲ್ಲಿ ಬಳಸುವ Unicode ಕೋಡ್-ಪಾಯಿಂಟ್ ಸಂಕೇತದೊಂದಿಗೆ ನೇರ ಹೊಂದಾಣಿಕೆ ಹೊಂದುತ್ತದೆ.

ಡಿಕೋಡಿಂಗ್ & ಗಂತಹ hex entities ನಿರ್ವಹಿಸುತ್ತದೆಯೇ?

ಹೌದು. ಡಿಕೋಡರ್ ಒಂದೇ ಪಾಸ್‌ನಲ್ಲಿ ಮೂರು ಎಂಟಿಟಿ ರೂಪಗಳನ್ನು ಹೊಂದಿಸುವ ಒಂದೇ regex ಬಳಸುತ್ತದೆ: &name;, &#NNN;, ಮತ್ತು &#xHH;. Numeric ಮ್ಯಾಚ್‌ಗಳು ಬೇಸ್ 10 ಅಥವಾ ಬೇಸ್ 16 ಬಳಸಿ String.fromCodePoint ನೊಂದಿಗೆ ಪರಿಹರಿಸಲ್ಪಡುತ್ತವೆ.

ಅವಿಶ್ವಾಸಾರ್ಹ ಇನ್‌ಪುಟ್‌ನೊಂದಿಗೆ ಬಳಕೆಗೆ ಇದು ಸುರಕ್ಷಿತವೇ?

ಕೊಡೆಕ್ ಬ್ರೌಸರ್-ಮಾತ್ರ ಮತ್ತು ನಿಮ್ಮ ಇನ್‌ಪುಟ್ ಎಲ್ಲಿಗೂ ಕಳುಹಿಸುವುದಿಲ್ಲ. ಔಟ್‌ಪುಟ್ ಎಂಬೆಡ್ ಮಾಡಲು ಸುರಕ್ಷಿತವೇ ಎಂಬುದು ಸಂದರ್ಭವನ್ನು ಅವಲಂಬಿಸಿದೆ. Entity ಎನ್‌ಕೋಡಿಂಗ್ HTML ಬಾಡಿ ಮತ್ತು ಅಟ್ರಿಬ್ಯೂಟ್-ಮೌಲ್ಯ ಸಂದರ್ಭಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, OWASP ನಿಯಮ #1 ಪ್ರಕರಣ ಒಳಗೊಳ್ಳುತ್ತದೆ. JavaScript, CSS, ಮತ್ತು URL ಸಂದರ್ಭಗಳಿಗೆ ತಮ್ಮದೇ ಎನ್‌ಕೋಡಿಂಗ್ ನಿಯಮಗಳು ಅಗತ್ಯ.

ಬ್ರೌಸರ್-ಸೈಡ್ entity ಎನ್‌ಕೋಡಿಂಗ್ ಬಳಕೆದಾರ ಇನ್‌ಪುಟ್ ಮತ್ತು ರೆಂಡರ್ ಮಾಡಿದ HTML ನಡುವಿನ ಗಡಿಯಲ್ಲಿ ಕುಳಿತಿದೆ. ಸ್ಥಳೀಯವಾಗಿ ಪರಿವರ್ತನೆ ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ ಫ್ರೇಮ್‌ವರ್ಕ್ ಏನು ಹೊರಸೂಸುತ್ತಿತ್ತು ಎಂದು ಪರಿಶೀಲಿಸಬಹುದು, ಮೂಲ ಟೆಕ್ಸ್ಟ್ ಥರ್ಡ್-ಪಾರ್ಟಿ ಉಪಕರಣಕ್ಕೆ ಕಳುಹಿಸದೇ.