Шта су ХТМЛ ентитети

click fraud protection

ХиперТект Маркуп Лангуаге, или ХТМЛ, је примарни језик за веб странице на Интернету. Укључује подршку за бројне друге језике који додају додатну функционалност и стил, као што су ЈаваСцрипт и ЦСС. Сви ови језици су засновани на тексту са неким смисленим знаковима који се користе за одвајање литералних стрингова који треба да се штампају у претраживачу и кода који треба да се тумачи и извршава.

Међутим, овај дизајн има неких проблема, који постају очигледни када желите да одштампате један од значајних знакова у претраживачу. Најбољи примери знакова за употребу су симболи „мање од“ и „веће од“. Односно, ови симболи се користе за отварање и затварање сегмената кода у ХТМЛ-у. Исправан метод безбедног штампања ових знакова на екрану је коришћење ХТМЛ ентитета.

ХТМЛ ентитети и безбедност

Захваљујући овим знаковима који имају посебно значење, морате бити веома пажљиви да бисте били сигурни да их замените верзијом ХТМЛ ентитета ако желите да се одштампају у претраживачу. Нажалост, многи веб програмери заборављају да корисници могу да поднесу унос на многим веб локацијама. Ако овај кориснички унос укључује значајне знакове и они нису замењени ХТМЛ ентитетима, у процесу који се зове санитетизација, онда веб локација има рањивост у вези са скриптовањем на више локација (КССС).

Савет: Не покушавајте да шаљете специјалне знакове веб локацијама у покушају да пронађете КССС рањивости. То је технички хаковање и представља кривично дело осим ако немате дозволу власника веб локације.

Како ХТМЛ ентитети функционишу (а понекад не раде)

ХТМЛ ентитети функционишу зато што прегледач зна да га прикаже као релевантан специјални знак и да га не третира као посебан карактер. Сви ХТМЛ ентитети почињу са амперсандом „&“ и завршавају се тачком-зарезом „;“. Већина знакова је идентификована бројем ентитета, иако неки специјални знакови имају и скраћено име. На пример, „&“, „“ имају бројеве ентитета „&“, „“, као и називе ентитета „&“, „“ респективно. Прегледач зна да ови низови значе да треба да прикаже релевантне знакове.

Савет: Може се пронаћи потпуна листа имена ентитета знакова овде, иако подршка за назив ентитета варира у зависности од претраживача.

У већини случајева, корисници би требало да виде само знакове које представљају ХТМЛ ентитети. Међутим, могуће је видети кодиране знакове, обично амперсанд „&“, кроз процес који се зове „Двоструко кодирање“. Ово се дешава када се знак амперсанда појављује у сопственој кодираној верзији. Двоструко кодирање се генерално дешава када је улаз исправно кодиран, пошто се шаље, међутим, када се излази, поново се дезинфикује. Ово доводи до тога да се амперсанд на почетку „&“ кодира други пут и појављује као „&“, затим претраживач исправно тумачи то као стринг који треба да буде одштампан као „&“ након што је декодирао ХТМЛ ентитет и игнорисао делимични ентитета.