Foros del Web » Programando para Internet » ASP Clásico »

impedir codigos maliciosos en formularios.

Estas en el tema de impedir codigos maliciosos en formularios. en el foro de ASP Clásico en Foros del Web. Hola tengo un formulario donde la gente escribe y deja comentarios en mi pagina web esta en asp y en mysql necesito una funcion que ...
  #1 (permalink)  
Antiguo 01/10/2010, 13:13
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 11 meses
Puntos: 4
impedir codigos maliciosos en formularios.

Hola

tengo un formulario donde la gente escribe y deja comentarios en mi pagina web
esta en asp y en mysql
necesito una funcion que impida que usuarios maliciosos introduzcan codigos javascript, imagenes, o flash
es decir cualquier cosa como <scripts> <object> <img> etc. y todas las cosas que puedan causar errores en mi codigo.
alguien conoce alguna?

gracias.

la idea es que haga este proceso del lado del servidor es decir en mi asp.
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #2 (permalink)  
Antiguo 01/10/2010, 13:28
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 11 meses
Puntos: 98
Respuesta: impedir codigos maliciosos en formularios.

Hola lexus,

Creo que lo mas sencillo es hacer un Server.HTMLEncode antes de guardar en tu base de datos:

Código:
nombre = Server.HTMLEncode(Request.Form("nombre"))
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 01/10/2010, 13:30
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 22 años, 11 meses
Puntos: 4
Respuesta: impedir codigos maliciosos en formularios.

hola
ya lo encontre buscando en las funciones de este foro de todas maneras muchas gracias

aqui lo publico.


Código ASP:
Ver original
  1. Function RemoveHTML(strText)
  2.     Dim TAGLIST
  3.     TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
  4.               "BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
  5.               "COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
  6.               "FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;" &_
  7.               "INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
  8.               "MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;PARAM;PLAINTEXT;" &_
  9.               "PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
  10.               "TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;"
  11.  
  12.     Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"
  13.    
  14.     Dim nPos1
  15.     Dim nPos2
  16.     Dim nPos3
  17.     Dim strResult
  18.     Dim strTagName
  19.     Dim bRemove
  20.     Dim bSearchForBlock
  21.    
  22.     nPos1 = InStr(strText, "<")
  23.     Do While nPos1 > 0
  24.         nPos2 = InStr(nPos1 + 1, strText, ">")
  25.         If nPos2 > 0 Then
  26.             strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
  27.         strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")
  28.  
  29.             nPos3 = InStr(strTagName, " ")
  30.             If nPos3 > 0 Then
  31.                 strTagName = Left(strTagName, nPos3 - 1)
  32.             End If
  33.            
  34.             If Left(strTagName, 1) = "/" Then
  35.                 strTagName = Mid(strTagName, 2)
  36.                 bSearchForBlock = False
  37.             Else
  38.                 bSearchForBlock = True
  39.             End If
  40.            
  41.             If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
  42.                 bRemove = True
  43.                 If bSearchForBlock Then
  44.                     If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
  45.                         nPos2 = Len(strText)
  46.                         nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
  47.                         If nPos3 > 0 Then
  48.                             nPos3 = InStr(nPos3 + 1, strText, ">")
  49.                         End If
  50.                        
  51.                         If nPos3 > 0 Then
  52.                             nPos2 = nPos3
  53.                         End If
  54.                     End If
  55.                 End If
  56.             Else
  57.                 bRemove = False
  58.             End If
  59.            
  60.             If bRemove Then
  61.                 strResult = strResult & Left(strText, nPos1 - 1)
  62.                 strText = Mid(strText, nPos2 + 1)
  63.             Else
  64.                 strResult = strResult & Left(strText, nPos1)
  65.                 strText = Mid(strText, nPos1 + 1)
  66.             End If
  67.         Else
  68.             strResult = strResult & strText
  69.             strText = ""
  70.         End If
  71.        
  72.         nPos1 = InStr(strText, "<")
  73.     Loop
  74.     strResult = strResult & strText
  75.    
  76.     RemoveHTML = strResult
  77. End Function
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #4 (permalink)  
Antiguo 01/10/2010, 15:57
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 6 meses
Puntos: 1012
Respuesta: impedir codigos maliciosos en formularios.

veo que ya lo solucionastes. yo uso expersiones regulares para eliminar código HTML
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #5 (permalink)  
Antiguo 03/10/2010, 08:14
 
Fecha de Ingreso: marzo-2010
Mensajes: 54
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: impedir codigos maliciosos en formularios.

no se olviden que se viene el html 5, van a tener que agregar un par de tags a las listas separadas y / o expresiones regulares para evitar problemas.

Rulo

Etiquetas: codigos, impedir, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:23.