Bezpečnost PHP - HTML ve formulářích

« zpět na PHP a HTML

Kde jsou bezpečnostní rizika

O co se jedná

Pokud chceme uživatelům umožnit vkládat HTML kód, musíme zvážit rizika. Uživatel může do textu vložit uzavírající tag >, čímž poruší kompletně strukturu stránky a v horším případě může na serveru spustit svůj PHP kod, což už je fatální chyba. K filtrování řetězců které mají v HTML význam máme v PHP speciální funkce.

Například nejpoužívanější htmlentities, která převádí která převádí HTML tagy a speciální znaky na jejich entity, tedy převádí znak na neškodný řetězec.

Druha je pak striptags, která pouze tagy odstraňuje a my tak ztratíme jakoukoli informaci o jejich přítomnosti.

Co můžeme a co ne

Většinou chceme povolit tagy image a anchor.
Pro důkladné ošetření kódu je v tom to případě přijmout informaci o odkazu, validovat ji pro funkčnost a korektnost a vložit ji zpět do korektního kódu.

Validace pro vkládání odkazu nebo obrázku by měla obsahovat následující:
  • odstranit uvozovky z tagu jak dvojité tak jednoduché
  • odmítnout jakékoli URL obsahující ?
  • odmítnout jakékoli URL obsahující odkaz na dynamické stránky (tedy php, asp ...)
  • odmítnout jakékoli URL obsahující jiný protokol než http

    a pak opět vrátit uvozovky na konec a na začátek odkazu.

    Autor: Filip Koval
  • Nezávazně vyzkoušejte webové stránky zdarma

    Klientská sekce pro Vás

    Spravujte své domény a hosting pohodlně 24 hodin denně

    Kontakt pro zákazníky

    Technická podpora

    PO-PÁ 8:00-21:00
    SO-NE, svátky 9:00-21:00

    E-mail: podpora@banan.cz

    Online pracovník

    Patrik Jankov

    +420 553 810 250

    Online chat

    Zvládáme opensource

    Na našich serverech jsme ručně ověřili funkci více než 140 opensource systémů, některé z nich nabízíme na jedno kliknutí v administraci.

    Hostované domény

    7688 domén 6423 1265

    Poslední článek - HOMEPAGE PRVKY

    O
    Ověřit dostupnost domény
    Technická podpora: +420 553 810 250podpora@banan.cz
    Technická podpora 800-2100 (SO-NE 900-2100) X
    Online pracovník: Patrik Jankov
    +420 553 810 250
    podpora@banan.cz nebo Online chat
    Kontaktovat technickou podporu můžete zde
    Kontaktovat technickou podporu můžete zde
    PO-PÁ 800-2100 (víkendy a svátky 900-2100)