Estava aqui programando com o novo framework, e derrepente tento salvar html dentro do banco e ban!
Apareceu o erro:
A potentially dangerous Request.Form value was detected from the client
Aparentemente este erro é normal quando não esta se utilizando ValidateRequest=”false” nas diretivas da página, mas após colocar, o mesmo erro apareceu.
Basicamente o ValidateRequest funciona para que veja a entrada proveniente do navegador para valores perigosos assim evitando a injeção SQL.
Então pesquisei, pesquisei e pesquisei e nada de achar onde fazer isto funcionar.
No próprio site da MSDN mostra que o ValidateRequest só é compativel com os frameworks 3.5, 3.0, 2.0.
O jeito era fuçar, e então que fui ler a página de erro detalhadamente e encontrei a resposta.
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. To allow pages to override application request validation settings, set requestValidationMode=”2.0″ in the configuration section. After setting this value, you can then disable request validation by setting validateRequest=”false” in the Page directive or in the configuration section….
Ou seja para funcionar é só ir até o web.config e a adicionar a seguinte linha dentro de system.web :
<httpRuntime requestValidationMode=”2.0″ />
Mas por que ?
No framework 4, por padrão, o ValidateRequest é habilitada para todo o site, porque ele é ativado antes da fase BeginRequest de uma solicitação HTTP.
Porém indico que trate o erro de ValidateRequest para que entradas potencialmente inseguros HTTP que podem ser vetores de ataque sejam barradas.
Para tratar este erro acesse: http://www.bufaloinfo.com.br/dicas.aspx?cod=862
Popularity: 44% [?]
