Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

394
Visualizações
Evitar la inyección de html en la validación del cuadro de texto de Asp.Net

Quiero agregar un validador que evite la inyección de html en la inyección de Asp.Net. Estoy usando el siguiente código:

<asp:TextBox ID="TxtBoxMultiLine" runat="server" TagName="textBoxValidation" Width="50%" AutoPostBack="False" autocomplete="off" textMode="MultiLine"></asp:TextBox>

<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Etiquetas HTML no permitidas" ControlToValidate="TxtBoxMultiLine" ClientValidationFunction="ValidateTitle" ValidationGroup="htmlValidation"></asp:CustomValidator>

<asp:Button Text="Guardar" ID="addSaveBttn" CssClass="savesimpleshape1" runat="servidor" OnClick="addSaveBttn_Click" ValidationGroup="htmlValidation"/>

estoy usando esa función javascript para validar mi cuadro de texto.

 function ValidateTitle(event) { str = (document.getElementById('textBoxValidation')).value; if (str.match(/([\<])([^\>]{1,})*([\>])/i) == null) { event.IsValid = true; } else { event.IsValid = false; } }

Cuando presioné el botón, se produjo esa excepción: se detectó un valor Request.Form potencialmente peligroso del cliente

Parece que está ignorando mi validación. Además, no quiero poner este elemento: ValidateRequest = false en mi página.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Para evitar la excepción: se detectó un valor Request.Form potencialmente peligroso del cliente Agregue lo siguiente dentro del elemento <system.web> .

 <sessionState mode="InProc" cookieless="UseUri"/>

Después de validar su entrada, lo siguiente eliminará las etiquetas HTML en un cuadro de texto usando expresiones regulares.

 const rx = /(<([^>]+)>)/ig const result = str.replace(rx, "");
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar un script de cliente como:

 function ValidateTitle(event,args) { str = (document.getElementById('textBoxValidation')).value; if (str.match(/([\<])([^\>]{1,})*([\>])/i) == null) { args.IsValid = true; } else { args.IsValid = false; } }

y

 <asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="HTML Tags Not Allowed" ControlToValidate="TxtBoxMultiLine" ClientValidationFunction="ValidateTitle" ValidationGroup="htmlValidation" EnableClientScript="true" Display="Dynamic"></asp:CustomValidator>

Podrías corregir algunos errores.

 str = (document.getElementById('textBoxValidation')).value;

a

 str = (document.getElementById('TxtBoxMultiLine')).value;

Debe establecer todas las entradas en algún grupo de validación

y debe agregar un recurso de secuencia de comandos para WebForms UnobtrusiveValidationMode requiere un ScriptResourceMapping para el error 'jquery'. también su expresión regular no detecta completamente el código html del que cambia su expresión regular

 if (str.match(/([\<])([^\>]{1,})*([\>])/i) == null) {

a

 if (str.match("<[^>]*>") == null) {

puede que necesite expresiones regulares más complejas.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda