Aproveitando mais uns minutos preciosos deixem cá recuperar algum tempo perdido. :)
Como o Israel mencionou a Microsoft lançou um Anti Cross Site Scripting Toolkit, na forma de métodos alternativos ao HtmlEncode/UrlEncode já existentes no ASP.NET. Claro que a pergunta que se coloca então é...mas existe algum problema com o htmlencode/urlencode já disponíveis no asp.net? :) ....
A questão está no estilo de filtragem que é feito, em busca de caracteres "perigosos" como <,>," e mais alguns, substituindo essas ocorrências pelo escaping html respectivo. Ou seja parte-se do princípio que conseguimos identificar à partida todas as gamas de possibilidades de ataque. E esta é uma daquelas coisas que é quase impossível acertar a 100%.
Embora sinceramente me pareça pouco provável que surja um vector de ataque explorando este aspecto...não é impossível....em boa verdade, num cenário de configuração *específico* ele já existiu :) yeap (http://it-project.ru/andir/docs/aspxvuln/aspxvuln.en.xml) . (Penso que quer em 2003 sp1 e .net 2.0 não se apresenta este problema)
O novo toolkit funciona da forma inversa.... faz escape de tudo, excepto os caracteres "inofensivos" (letras, underscores,etc) o que limita logo qualquer possibilidade de surgir algum tipo de ataque no futuro.
Ainda não tive grande tempo para experimentar (leia-se, não experimentei mesmo), mas como a questão do bypass com unicode me estava muito fresca na memória de todo o material para o TechDays achei curioso este release.
Tudo isto para resumir no seguinte: é muito mais seguro aceitarmos apenas o que sabemos que é válido, do que negarmos o que pensarmos ser inválido/perigoso.... este 2º caminho é uma travessia penosa, regra geral cheia de más surpresas, pq acabam por surgir sempre formas de ataque difíceis de antecipar :)
Ainda dentro da segurança, dois links que valem a pena:
The Code Room: BREAKING INTO VEGAS!
ASP.NET 2.0 Security Training Modules and Videos!!!
E por fim o blog de onde apanhei isto tudo, e que vale muito a pena ter debaixo de olho, é o do Dan Sellers !
Vemo-nos dia 10 :) Apareçam no evento! O tempo nunca é muito para um tópico tão abrangente mas sempre podemos trocar ideias depois.
RQ