sexta-feira, 27 de novembro de 2009

Cross site scripting ou XSS

Cross site scripting (também conhecido como XSS) é uma vulnerabilidade que permite a um atacante enviar código malicioso (geralmente na forma de Javascript) para outro usuário. Porque um navegador não é possível saber se o script deve ser confiável ou não, ele vai executar o script no contexto do usuário permitindo ao invasor acessar os cookies ou tokens de sessão retidos pelo navegador.

Usuários mal-intencionados podem injectar JavaScript, VBScript, ActiveX, HTML ou Flash em um aplicativo vulnerável para enganar o usuário, a fim de coletar dados a partir deles. Um invasor pode roubar o cookie de sessão e retomar a conta, a representação do usuário. Também é possível modificar o conteúdo da página apresentada ao usuário.

Como corrigir essa vulnerabilidade
Seu script deve ter meta caracteres filtro de entrada.
Em casos de linguagem PHP usar:


Aplicação com vulnerabilidade:

$procurar = $_GET[“procurar”];

Aplicação sem vulnerabilidade:

$procurar = htmlspecialchars ($_GET[“procurar”]);




Dica do Pedro Elsner

Classe que altera todos os valores via GET e POST automáticamente.

Inclusive, ela filtra inclusive se for passado algum vetor via GET ou POST


$valor){
if (is_array($valor)){
self::filter($valor);
}
else{
$return["$chave"] = htmlspecialchars($valor);
}
}

return $return;
}
}

/* Ativando */
$_GET = AntiXSS::filter($_GET);
$_POST = AntiXSS::filter($_POST);

?>


Em todas as páginas do site basta apenas dar um include desse arquivo.
Pode acrescentar também sessions e cookies. Por exemplo:



/* Ativando */
session_start();
$_SESSION= AntiXSS::filter($_SESSION);
$_COOKIE = AntiXSS::filter($_COOKIE);
$_GET = AntiXSS::filter($_GET);
$_POST = AntiXSS::filter($_POST);

?>

Valeu pela colaboração Pedro.
Agência J1 Digital.


Nenhum comentário:

Postar um comentário