የተጠቃሚ ይዘትን ወደ template በደህና ማስገባት
የተጠቃሚ አስተያየቶች፣ የቅጽ ምላሾች፣ የፍለጋ ጥያቄዎች — ከውጭ የመጣ እና በ<p>፣ <li>፣ ወይም attribute ውስጥ የሚያልቅ ማንኛውም ነገር። ወደ HTMLዎ string-concatenating ከማድረግዎ በፊት በMinimal-mode ኢንኮድ ውስጥ ያሂዱ፣ ከተሰበረ markup እና ከቀላል የXSS payloads ደህና ይሆናሉ።
`& < > " '` ወደ ደህንነቱ የተጠበቁ HTML entities ይቀይሩ፣ ወይም በentity የተቀየሰ ጽሑፍን ወደ ተራ ጽሑፍ ዲኮድ ያድርጉ። አራት የኢንኮዲንግ ደረጃዎች — Minimal፣ Named፣ Numeric፣ All non-ASCII። UTF-8 + emoji + CJK ደህንነት የተጠበቀ፣ በአሳሽዎ ውስጥ።
በነባሪ Minimal ይጠቀሙ — የHTML body / attribute ሁኔታዎችን የሚያፈርሱ አምስቱን ቁምፊዎች & < > " ' ብቻ escape ያድርጉ። ይህ ሁሉም ዘመናዊ templating engine የሚያደርገው ነው። copyright / nbsp / arrows ወዘተ. እንደ ሊነበቡ ኮዶች (© ከ© ይልቅ) ከፈለጉ Named entities ይጠቀሙ። HTMLን named entities በማይረዱ pipelines በኩል ሲልኩ Numeric ይጠቀሙ። ጥብቅ የASCII-ብቻ ስርዓቶችን (የቀደመ ኢሜል ሰርቨሮች፣ የተሰበሩ APIs) ሲያነጣጥሩ All non-ASCII ይጠቀሙ።
' በXML እና HTML5 ትክክል ነው፣ ግን በHTML 4.01 አይደለም — የቀደሙ አሳሾች እንደ ቀጥተኛ ጽሑፍ ' ይሰሩታል። የቁጥራዊ ማጣቀሻው ' በሁሉም ቦታ ይሰራል። ዲኮደሩ 'ን ለተኳኋኝነት እንደ ግቤት ይቀበላል።
ለtemplates የተጠቃሚ ይዘትን escape ያድርጉ፣ በentity የተቀየሰ መረጃን ዲኮድ ያድርጉ — እና ለመጠቀም በእውነት አስደሳች የሚያደርጉት ጥቂት ትናንሽ ንክኪዎች።
Minimal ለHTML አደገኛ የሆኑ አምስት ቁምፊዎችን ብቻ escape ያደርጋል (& < > " ') — ለተለመደ የተጠቃሚ-የተፈጠረ ይዘት ትክክለኛው ነባሪ። Named አንድ ካለ የሚነበቡ HTML5 entities እንደ © / / ♥ ይጠቀማል። Numeric እያንዳንዱን non-ASCII codepoint እንደ &#NN; ኢንኮድ ያደርጋል። All non-ASCII ለቀደምት / ASCII-ብቻ pipelines ከሚታተም ASCII ውጭ ያለ እያንዳንዱን codepoint ኢንኮድ ያደርጋል።
ዲኮደሩ named entities (©)፣ ዲሲማል ቁጥራዊ (©)፣ እና ሄክስ ቁጥራዊ (©) ያስተናግዳል። Surrogate-pair codepoints (emoji፣ ጥንታዊ ስክሪፕቶች) በUTF-16 በኩል በትክክል ይዞራሉ።
ውጤቱ በእያንዳንዱ የቁልፍ ጥቅት ይዘምናል — የሚጫን Encode / Decode ቁልፍ የለም። አቅጣጫን በአንድ ጠቅታ ይቀይሩ፤ Swap ቁልፍ ውጤቱን ወደ ግቤት ይመልሳል ስለዚህ ለውጦችን ማስከተል ይችላሉ።
እያንዳንዱ Unicode codepoint በትክክል ይዞራል፦ 中文፣ العربية፣ русский፣ हिंदी፣ 🎉፣ Þorgeir። Encoder በ-codepoint መደጋገም ይጠቀማል (charAt አይደለም) ስለዚህ surrogate pairs ሳይነኩ ይቆያሉ።
ጽሑፍዎ በመሣሪያዎ ላይ ይቆያል። Encoder፣ decoder፣ named-entity ሰንጠረዥ ሁሉም በአካባቢው እንደ JavaScript ይሰራሉ። DevTools → Network ይክፈቱ እና ዜሮ ወደ ውጭ የሚሄዱ ጥያቄዎች መኖራቸውን ያረጋግጡ።
ንጹህ JavaScript፣ የframework runtime የለም። ቀዝቃዛ መጫን ከ25 KB gzipped በታች ነው። 100 KB HTML ሰነድ ከ5 ms በታች ኢንኮድ ይደረጋል።
ከጥሬ ጽሑፍ ወደ entity-safe ውጤት አራት ደረጃዎች።
ተራ ጽሑፍ ወይም HTMLን ወደ ግቤት pane ያስገቡ። ማንኛውም ነገር ይቻላል — የተጠቃሚ አስተያየቶች፣ የብሎግ ልጥፎች፣ emoji፣ CJK፣ የRTL ስክሪፕቶች። Encoder በcodepoint ይደግማል ስለዚህ ባለ-ብዙ-ባይት ቅደም ተከተሎች ሳይነኩ ይቆያሉ።
አቅጣጫን ወደ ኢንኮድ (ጽሑፍ → entities) ወይም ዲኮድ (entities → ጽሑፍ) ያዘጋጁ። ለኢንኮድ ሞዱን ይምረጡ፦ ለtemplates Minimal፣ ለሚነበቡ entities Named፣ non-ASCIIን እንደ &#NN; ለማድረግ Numeric፣ ለASCII-ብቻ ውጤት All non-ASCII።
ውጤቱ በእያንዳንዱ የቁልፍ ጥቅት ይዘምናል። dropdownን በመቀየር ሞዶችን በእውነተኛ ጊዜ ያወዳድሩ። ውጤቱን ወደ ግቤት ለመመለስ Swapን ይጠቀሙ — ለክብ-ጉዞ ማረጋገጫ ጠቃሚ (ኢንኮድ ከዚያም ዲኮድ = ኦሪጂናል)።
ውጤቱን ወደ ቅንጥብ ሰሌዳዎ ለመግፋት የቅዳ አዶን ይጠቀሙ፣ ወይም እንደ output.encode.html / output.decode.txt ለማስቀመጥ የማውረጃ አዶን ይጠቀሙ። የመጠን ልዩነት (chars / bytes ግቤት → ውጤት) ኢንኮዲንግ ጽሑፉን በምን ያህል እንደነፋው ወይም እንዳጠረው በትክክል ያሳያል።
ግላዊነት-ቀዳሚ የአሳሽ መሣሪያ ኮድን ወደ የዘፈቀደ የመስመር ላይ encoder ከመለጠፍ የሚበልጥባቸው አራት የተለመዱ ሁኔታዎች።
የተጠቃሚ አስተያየቶች፣ የቅጽ ምላሾች፣ የፍለጋ ጥያቄዎች — ከውጭ የመጣ እና በ<p>፣ <li>፣ ወይም attribute ውስጥ የሚያልቅ ማንኛውም ነገር። ወደ HTMLዎ string-concatenating ከማድረግዎ በፊት በMinimal-mode ኢንኮድ ውስጥ ያሂዱ፣ ከተሰበረ markup እና ከቀላል የXSS payloads ደህና ይሆናሉ።
አንዳንድ APIs አስቀድሞ entity-የescaped strings ይመልሳሉ (RSS feeds፣ የተወሰኑ CMS exports፣ የተቆረጠ HTML)። ይለጥፉ፣ ዲኮድን ይጫኑ፣ ኦሪጂናል Unicode ይመለሳል። ዲኮደሩ named፣ ዲሲማል፣ እና ሄክስ entities surrogate pairsን ጨምሮ ያስተናግዳል።
<title>፣ <meta name="description">፣ <meta property="og:title"> — ሁሉም ለልዩ ቁምፊዎች entity escaping ያስፈልጋቸዋል። ራስ ምታትዎን አንዴ ኢንኮድ ያድርጉ፣ ወደ ሁሉም ሶስቱ ይለጥፉ።
የውስጥ CMS ይዘት፣ የደንበኛ መረጃ፣ በNDA የተጠበቁ templates — ወደ cloud encoder ሊለጥፉ የማይችሉት ማንኛውም ነገር። የአሳሽ-ብቻ መሣሪያው እያንዳንዱን ባይት በላፕቶፕዎ ላይ ያስቀምጣል። DevTools → Network ይክፈቱ እና ምንም ነገር እንደማይወጣ ያረጋግጡ።
ጽሑፍዎ መሣሪያዎን አይለቅም። DevTools → Network ይክፈቱ እና በኢንኮድ ወይም በዲኮድ ጊዜ ዜሮ ወደ ውጭ የሚሄዱ ጥያቄዎች ያያሉ።
በHTML escaping፣ entity tables፣ እና ደህንነቱ የተጠበቀ templating ላይ በእጅ የተመረጡ ንባቦች።
በነባሪ Minimal ይጠቀሙ — የHTML body / attribute ሁኔታዎችን የሚያፈርሱ አምስቱን ቁምፊዎች & < > " ' ብቻ escape ያድርጉ። ይህ ሁሉም ዘመናዊ templating engine የሚያደርገው ነው። copyright / nbsp / arrows ወዘተ. እንደ ሊነበቡ ኮዶች (© ከ© ይልቅ) ከፈለጉ Named entities ይጠቀሙ። HTMLን named entities በማይረዱ pipelines በኩል ሲልኩ Numeric ይጠቀሙ። ጥብቅ የASCII-ብቻ ስርዓቶችን (የቀደመ ኢሜል ሰርቨሮች፣ የተሰበሩ APIs) ሲያነጣጥሩ All non-ASCII ይጠቀሙ።
' በXML እና HTML5 ትክክል ነው፣ ግን በHTML 4.01 አይደለም — የቀደሙ አሳሾች እንደ ቀጥተኛ ጽሑፍ ' ይሰሩታል። የቁጥራዊ ማጣቀሻው ' በሁሉም ቦታ ይሰራል። ዲኮደሩ 'ን ለተኳኋኝነት እንደ ግቤት ይቀበላል።
አዎ። Encoder codepointsን ይደግማል (UTF-16 code units አይደሉም)፣ ስለዚህ እንደ 🎉 (U+1F389) ያሉ emoji በኢንኮድ ላይ ወደ 🎉 ይሆናሉ እና በዲኮድ በኩል በትክክል ይዞራሉ። ለCJKም እንዲሁ (中文 → በnumeric ሞድ 中文)።
ለHTML body እና attributes — አዎ፣ በMinimal ሞድ። ለURL ሁኔታዎች (href="...") URL encodingም ያስፈልግዎታል። ለinline JavaScript ወይም CSS፣ HTML ወይም URL encoding በቂ አይደለም — እነዚያን ሁኔታዎች የሚረዳ ተገቢ templating engine ይጠቀሙ። የተጠቃሚ ግቤትን ሳይescape ወደ <script> block በፍፁም አይለጥፉ።
አይ። Encoderው፣ decoderው፣ እና የnamed-entity መፈለጊያ ሰንጠረዥ ሁሉም በመሣሪያዎ ላይ በJavaScript ይሰራሉ። DevTools → Network ይክፈቱ እና በኢንኮድ ወይም በዲኮድ ጊዜ ዜሮ ወደ ውጭ የሚሄዱ ጥያቄዎች ያያሉ። ምስጢሮችን፣ የደንበኛ መረጃን፣ የውስጥ templates ይለጥፉ — ምንም ነገር ላፕቶፕዎን አይለቅም።