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

Napsal O webu (») 28. 11. 2007 v kategorii PHP/HTML, přečteno: 2843×

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
  • Facebook Twitter Topčlánky.cz Linkuj.cz

    Komentáře

    Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
    Článek ještě nebyl okomentován.


    Nový komentář

    Téma:
    Jméno:
    Notif. e-mail *:
    Komentář:
      [b] [obr]
    Odpovězte prosím číslicemi: Součet čísel tři a šest