Croos-site scripting (XSS) é um método de inserção de algumas instruções para que seja executado um código javascript, um objeto, ou código HTML quando um editor de HTML é disponibilizado para o usuário. Este código pode abrir uma janela oculta no sistema do usuário e gravar itens como nomes de usuários e senhas em outras janelas do navegador. O fato de um website permitir ao usuário postar conteúdo (uma das principais características da web 2.0), este vulnerabilidade tem aumentado e sido explorada ao máximo. Croos-site scripting é um ataque muito perigoso e deve ser evitado.
Estes tipos de ataques podem ser controlados através da interface de usuário do joomla. No entanto, a prevalência de extensões disponíveis que permitem inserção de código HTML, por exemplo (Livros de visitas e fóruns) significa que você deve estar alerta para prevenir esses tipos de ataque. Assegurar que as novas extensões façam a filtragem das tags utilizadas por este método de ataque (principalmente e ) antes de implantar a extensão ou o seu site.
PHP tem um conjunto de funções que podem lhe ajudar. A funçãp strip_tags () irá funcionar retirando todos as tags de HTML, XML e PHP, de uma seqüência de dados enviados e devolvendo o texto plano. Isto pode ser utilizado de forma muito eficaz se a sua aplicação não está esperando este tipo de formatação de texto como entrada. Para a formatação, você poderia usar BBCode, que é aceita sem ser afetada por essa função.
A função htmlentities () do PHP irá converter todos os caracteres não-alfanuméricos (como aspas, maior que, asterisco e assim por diante) para formatação HTML. Você também pode usar expressões regulares para tirar todos os caracteres especiais exceto alfanuméricos. Por último, em um campo Nome, você pode usar uma declaração como esta:
$myString = preg_replace("/[^a-z 0-9]/i", "", $myString);













