Autor Zpráva
Sirius
Profil
Zdravím,

mám přihlašovací formulář, kde se v případě neúspěšného přihlášení předvyplní naposledy zadané jméno uživatele. Výstup do pole mám ošetřený pomocí htmlspecialchars(). Testoval jsem přihlašovací stránku pomocí firefox pluginu XSS Me a ten mi neustále hlásí, že znaky
; \ / ' = 
jsou u tohoto pole neošetřené a v některých prohlížečích je lze zneužít.

Jak to mám ošetřit? Nebo htmlspecialchars() opravdu stačí a nemám tomu varování věnovat pozornost?
Jan Tvrdík
Profil
Sirius:
htmlspecialchars($text, 'ENT_QUOTES') by mělo být dostatečnou ochranou.
Yur4Y
Profil
Jan Tvrdík:
Apostrofy tam nepatria, ENT_QUOTES je konštanta. Navyše to neošetruje spätné lomítka.
Sirius
Profil
A lomítka jsou hrozbou, když nelze použít < > "" '' ?
Joker
Profil
Sirius:
Pokud jde jen o HTML, lomítka nevadí.
Sirius
Profil
Pokud je tím myšleno, že mi tam nikdo nespustí pomocí toho pole žádnej JS, tak jsem spokojen.

Díky všem za pomoc.
Maro
Profil *
Čaute,
používam takéto nejaké ošetrenie: (časť fcie)
   $value = htmlspecialchars($value, ENT_QUOTES); 
   $value = str_replace("'","& #39;",$value); 
   $value = str_replace("\\","\\\\",$value); 
   $value = str_replace("%","& #37;",$value); 
   $value = trim($value); 


pre $_POST, $_GET, $_COOKIE, $_SESSION.

A pre znaky
;	\	/	=
mi aj tak vypisuje XSS me chybu.

Neviete prosím, v čom to môže byt?
Ďakujem.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: