Erro "A Potentially dangerous Request. Form value was detected"


Índice

Se você está obtendo a seguinte exception: “A potentially dangerous Request.Form value was detected” quando alguma ação é executada na sua página, por exemplo, ao clicar em um botão que envia dados preenchidos na página, saiba que essa é uma exception retornada pelo ASP.NET para indicar que o conteúdo digitado pelo usuário parece alguma tentativa de ataque.

Por exemplo, o usuário pode ter digitado no campo:

Esse "exemplo" é

ou então:

<b>conteúdo</b>

Por padrão essa validação fica habilitada para impedir que o usuário possa inserir scripts que serão executados no servidor.

Se você precisar que o usuário possar inserir conteúdo HTML no campo, você pode desabilitar essa validação da seguinte forma:

1- Aplicação ASP.NET MVC

Na view, adicione o atributo [AllowHtml] as propriedades que devem aceitar HTML

public class UserViewModel {
	public string Name { get; set;}

	[AllowHtml]
	public string Bio { get; set;}
}

ou entrão, no Action da Controller adicione o atributo [ValidateInput(false)]

[ValidateInput(false)]
public ActionResult UserEdit() {
	return View();
}

2- Aplicação ASP.NET Web Forms

2.1- Desabilitar somente para a página

Adicione o parâmetro “validateRequest” na tag “<%@Page” que aparece no topo do html da página: <%@ Page Language=”c#” validateRequest=”false” %>

2.2- Desabilitar a validação para todas as páginas do site

Essa é a opção menos recomendada, porque desabilita a validação no site inteiro. No web.config, adicione as seguintes tags:

<configuration>
	<system.web>
		<httpRuntime requestValidationMode="2.0"/>  
		<pages validateRequest="false" />
	</system.web>
</configuration>

Mais informações

Mais detalhes no seguinte link (en-US): Request validation


Comentários