[[structure-text-formats]]

=== Alapfogalom: szövegformátumok és -szerkesztők

[role="summary"]
Szövegformátumok, -szerkesztők és szűrőik a webhelyközi parancsprogram-támadásokkal (XSS) való összefüggésük megértése.

(((Szövegformátum,áttekintés)))
(((Felhasználó által létrehozott tartalom,szűrés)))
(((Biztonság,szövegformátum)))
(((Biztonság,webhelyközi parancsfájlok)))
(((Webhelyközi parancsprogram-támadás (XSS),megelőzés)))
(((XSS (webhelyközi parancsprogram-támadás),megelőzés)))

// ==== Szükséges előismeretek

==== Mik a szövegszerkesztők és -formátumok?

A tartalomkezelő rendszerekben jellemzően szöveges tartalmakat tudunk rögzíteni és szerkeszteni. Az egyszerűbb formázás érdekében ehhez gyakran használunk szövegszerkesztőt. Szövegek beküldésére szolgáló beviteli mezők gyakran elérhetőek nyilvános felületekről – például a hozzászólás-beküldő vagy kapcsolatfelvételi űrlapokon – és adminisztrációs felületről egyaránt (például cikkek beküldésekor). A Drupal-alapú webhelyen tárolt szövegek _formátuma_ azt határozza meg, hogy milyen HTML-elemeket tartalmazhatnak, ezáltal mennyire formázhatók. Egy szövegformátum több _szűrőből_ épül fel, melyek mindegyike valamilyen módon átalakítja a beküldött szöveget. Amikor a felhasználó valamilyen szöveget ír be a webhelyünkön (pl. hozzászólást küld be vagy kitölti a kapcsolatfelvételi űrlapot), azt egy előre meghatározott szövegformátum segítségével teszi, miközben az eredeti – módosítások nélküli – szöveget menti el a rendszer az adatbázisban. Így amikor legközelebb meg kell jeleníteni a szöveget, a Drupal kiolvassa az adatbázisból a nyers karaktersorozatot, alkalmazza rá a hozzárendelt formátumot (azaz a szűrőit egyesével érvényesíti rajta), és csak azután küldi ki az így kapott formázott végeredményt a böngésző felé.

Mindezt az alaprendszer _Filter_ modulja végzi, ami alapértelmezetten be van kapcsolva, ha webhelyünket az Általános telepítési profillal hoztuk létre. Ehhez a telepítési profilhoz gyárilag kapunk egy „Alap HTML”, egy „Korlátozott HTML” és egy „Teljes HTML” nevű szövegformátumot. Mindegyik szövegformátum önálló jogosultságokkal bír, így könnyen szabályozható, hogy a felhasználók mely szerepköréhez mennyire megengedő vagy éppen szigorú szűrésű formátumokat engedélyezünk. Így például a be nem jelentkezett felhasználóknak (másképpen azonosítatlan látogatóknak) a hozzászólások beküldéséhez elegendő csupán az _Alap HTML_ szövegformátum engedélyezése, így nem tudnak ártó szándékú tartalmat a webhelyünkre juttatni.

==== Mik a szövegformátumokhoz rendelt szerkesztők?

A jogosultságokon túl a szövegformátumokhoz szerkesztőprogramok is társíthatók, mint például az „azt kapod, amit látsz” (WYSIWYG) típusú _CKEditor_. Ezt az alaprendszer _Text Editor_ modulja biztosítja, valamint ugyanez teszi lehetővé azok testreszabását is (például további formázási műveletek gombjainak kihelyezését az eszközsorukra). Egy másik alaprendszerben található modul, a _CKEditor_ pedig – nevéből könnyen kitalálhatóan – a mára már széleskörűen elterjedt CKEditor nevű JavaScript-alapú szövegszerkesztőt integrálja a webhely működésébe.

==== Mi a webhelyközi parancsprogram-támadás?

Az angol eredeti elnevezéssel cross-site scripting (rövidítve XSS, ami magyarra leginkább talán „webhelyközi parancsprogram-támadásként” fordítható le) egy elterjedt hackelési módszer, ami egyes webhelyek sérülékenységére épít. Lényege, hogy egy nem megfelelően védett webhelyre az ártó szándékú felhasználók képesek bejuttatni olyan szkripteket, amelyek más, ártatlan látogatók oldalmegtekintései során azzal együtt letöltődnek. Az egyik leggyakoribb célja az effajta támadásoknak a gyanútlan látogatók felhasználói fiókjába való bejelentkezés. A webhelyközi parancsprogram-támadás a webhely nyilvánosság számára elérhető szövegbeviteli lehetőségein (pl. hozzászólás, fórum, vendégkönyv stb.) keresztül valósítható meg a legkönnyebben. Emiatt kell odafigyelni a szövegformátumok különböző szerepkörök részére való engedélyezésére.

==== Kapcsolódó témák

<<security-concept>>

==== Egyéb források

* https://www.drupal.org/docs/8/core/modules/filter/overview[_Filter_ modul: felhasználók szövegbevitelének szűrése]: közösségi dokumentáció a Drupal.org-on angol nyelven.

* https://en.wikipedia.org/wiki/Cross-site_scripting[Cross-site scripting]: szócikk az angol Wikipédián.


*Közreműködők*

Írta és szerkesztette: https://www.drupal.org/u/batigolix[Boris Doesborg] és https://www.drupal.org/u/jhodgdon[Jennifer Hodgdon]. Fordította: https://www.drupal.org/u/balu-ertl[Balu Ertl] (https://www.drupal.org/brainsum[Brainsum]).
