Início > ASP.NET MVC, Dicas / Tips > Evitando Java Script Injection ou HTML injection ASP.NET MVC 3

Evitando Java Script Injection ou HTML injection ASP.NET MVC 3

Evitando cross-site script injection XSS utilizando Html Encoding:

Segue um exemplo:

Controller: Cliente

public string Buscar(string Nome)
{
string nomeBuscado = HttpUtility.HtmlEncode("Nome buscado: " + Nome);
return nomeBuscado;
}

Utilizando o método HttpUtility.HtmlEncode, evita que código do tipo: /Cliente/Buscar?Nome=<script>alert(‘Hacker’)</script> seja passado via parâmetro.

Observação: Por padrão, expressões na view engine Razor são automaticamente HTML encoded.

Ex:
@{
var mensagem = “<script>alert(‘hackeado’)</script>”;
}
<span>@mensagem</span>

resultado:
<span>&lt;script&gt;alert(‘hackeado’);&lt;script&gt;</span>

O Script não será executado.

para permitir a incorporação de texto com código/marcação na view, utilize o método:
<span>@Html.Raw(mensagem)</span>
Nesse caso o alert javascript será exibido.

Ao escrever dentro de código javascript, utilize uma segunda proteção contra XSS, um Encode específico para Javascript:

<script type=”text/javascript”>
$(function () {
var boasvindas = ‘Ola @Ajax.JavaScriptStringEncode(ViewBag.LoginUsuario)’;
$(“#mensagem”).html(boasvindas).show(‘slow’);
});
</script>
Anúncios
  1. rahecords
    07 - 12 às 7:49 pm

    Prezado,
    legal,,,mas poderia ser mais especifico onde inserir no html para previnir html injection?
    Ou então este seria pra quem está escrevendo em js certo? e para um site comunzão em html?? Obrigado pela paciencia!

    • 08 - 12 às 3:53 pm

      Em locais onde o usuário pode forçar entrada de código, como por exemplo parâmetros via GET, dados de campos e etc.

  1. No trackbacks yet.

Deixar uma Anotação

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

dotnettips.wordpress.com/

Helping Programmers Since 1994

Viagem e Voo

Dicas para viagens, férias e voos nacionais e internacionais

Ivan Guimarães Meirelles

Analista Desenvolvedor

Void Podcast

Vazio e sem retorno de valor

Elemar DEV

Negócios, tecnologia e desenvolvimento

2,000 Things You Should Know About WPF

Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

blog

so long

Fernando Franzini Blog

Engenharia de Software e Arquitetura Ágil

Gabriel RB.net

Blog técnico, com dicas, códigos, novidades e problemas do dia-a-dia programando.

Alexandre Valente's Blog

Experiências em tecnologia e assuntos diversos

%d blogueiros gostam disto: