Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

400
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda