Hiperteksta iezīmēšanas valoda jeb HTML ir galvenā valoda tīmekļa lapām internetā. Tas ietver atbalstu vairākām citām valodām, kas pievieno papildu funkcionalitāti un stilu, piemēram, JavaScript un CSS. Visas šīs valodas ir balstītas uz tekstu ar dažām jēgpilnām rakstzīmēm, ko izmanto, lai atdalītu burtiskās virknes, kas jādrukā pārlūkprogrammā, un kodu, kas jāinterpretē un jāizpilda.
Tomēr šim dizainam ir dažas problēmas, kas kļūst acīmredzamas, ja vēlaties pārlūkprogrammā izdrukāt kādu no nozīmīgajām rakstzīmēm. Labākie izmantojamo rakstzīmju piemēri ir simboli “mazāks par” un “lielāks par”. Attiecīgi šie simboli tiek izmantoti, lai atvērtu un aizvērtu koda segmentus HTML. Pareizā metode šo rakstzīmju drošai drukāšanai ekrānā ir izmantot HTML entītijas.
HTML entītijas un drošība
Tā kā šīm rakstzīmēm ir īpaša nozīme, jums ir jābūt ļoti uzmanīgiem, lai tās aizstātu ar HTML entītijas versiju, ja vēlaties, lai tās tiktu izdrukātas pārlūkprogrammā. Diemžēl daudzi tīmekļa izstrādātāji aizmirst, ka lietotāji var iesniegt ievadi daudzās vietnēs. Ja šajā lietotāja ievadītajā procesā ir ietvertas nozīmīgas rakstzīmes un tās netiek aizstātas ar HTML entītijām procesā, ko sauc par dezinfekciju, vietnei ir Cross-Site Scripting (XSS) ievainojamība.
Padoms. Nemēģiniet vietnēs ievietot speciālās rakstzīmes, lai atrastu XSS ievainojamības. Šāda rīcība ir tehniska uzlaušana un ir kriminālpārkāpums, ja vien jums nav vietnes īpašnieka atļaujas.
Kā HTML entītijas darbojas (un dažreiz ne)
HTML entītijas darbojas, jo pārlūkprogramma zina to parādīt kā attiecīgo īpašo rakstzīmi un neuztvert to kā īpašu rakstzīmi. Visas HTML entītijas sākas ar & un beidzas ar semikolu “;”. Lielāko daļu rakstzīmju identificē pēc entītijas numura, lai gan dažām īpašajām rakstzīmēm ir arī saīsināts nosaukums. Piemēram, “&”, “<” un “>” ir entītiju numuri “&”, “<” un “>”, kā arī entītiju nosaukumi attiecīgi “&”, “<” un “>”. Pārlūkprogramma zina, ka šīs virknes nozīmē, ka tai ir jāparāda attiecīgās rakstzīmes.
Padoms. Pilnu rakstzīmju entītiju nosaukumu sarakstu var atrast šeit , lai gan entītiju nosaukumu atbalsts atšķiras atkarībā no pārlūkprogrammas.
Vairumā gadījumu lietotājiem vajadzētu redzēt tikai tās rakstzīmes, kuras attēlo HTML entītijas. Tomēr ir iespējams redzēt kodētas rakstzīmes, parasti & —, izmantojot procesu, ko sauc par "dubulto kodējumu". Tas notiek, kad simbols & tiek parādīts savā kodētajā versijā. Dubultā kodēšana parasti notiek, ja ievade ir pareizi kodēta, jo tā tiek iesniegta, taču, kad tā tiek izvadīta, tā tiek atkal notīrīta. Tā rezultātā simbols & sākumā tiek kodēts otrreiz un parādās kā "&", pēc tam pārlūkprogramma to pareizi interpretē kā virkni, kas jādrukā kā "&", atšifrējot HTML entītiju un ignorējot. daļēja vienība.