Foros del Web » Programación para mayores de 30 ;) » .NET »

Seguridad para una aplicaión web

Estas en el tema de Seguridad para una aplicaión web en el foro de .NET en Foros del Web. Estoy empezando con la seguridad en mi aplicación. Lo primero que pensé es en la encriptación cdo el cliente se valida al entrar al proyecto.Y ...
  #1 (permalink)  
Antiguo 11/07/2005, 02:39
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Seguridad para una aplicación web

Estoy empezando con la seguridad en mi aplicación.
Lo primero que pensé es en la encriptación cdo el cliente se valida al entrar al proyecto.Y leí que la mejor opción era encritación asimetrica md5 y encontré esto
http://www.forosdelweb.com/f29/cifrar-contrasenas-con-md5-307635/
que no creo que tenga ningún problema en hacerlo.

He leido tb que para evitar inyeeccionessql o inserciones de secuencia hay que mirar bien lo que mete el cliente por lo que necesitaria algo más para blindar las entrada maliciosas (es mi primer proyecto fuera d ela uni y temas de estos estoy un poco pez aunque supongo que habrá que evitar la entrada de hmtl... o cierto código ascii)

Por otro lado esta la validación en el ISS.De momento tengo validación del cliente anónima.Estoy leyendo lo de lso certificados y lo de canales seguros via ssl.He lido aqui varios post de jose_menglein2 ,enriquez,wakewakeup... bastante largos y necesito algo más sencillito ya que hablaban de certificados de la Fabrica Nacional de Moneda y Timbre que me ha dejao ya un poco out... jejeje

En principio me gustaria sabe rlo que debo colcar para hacer d emi aplicación una aplicacion segura,teniendo en cuenta que es una aplicaion de gestion interna de una academia pero q se encuentra en la red y por lo tanto algún cliente mal intencionado podría intetar algo...(nunca se sabe)

Que me recomiendan??
Gracias

Última edición por neivan; 12/07/2005 a las 07:02
  #2 (permalink)  
Antiguo 11/07/2005, 03:18
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
hola d enuevo.
Una duda más.
He leído que Debido al descubrimiento de un método fácil para generar colisiones de hash, muchos investigadores recomiendan otros algoritmos tales como SHA-1 o RIPEMD-160, para ser usados en lugar de MD5.
Es más seguro SHA-1 ?? En principio y según veo ocupará más y por lo tanto será más complicado de desencriptar...

Última edición por neivan; 11/07/2005 a las 07:04
  #3 (permalink)  
Antiguo 11/07/2005, 08:35
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Coloqué encriptacón de SHA-1 al final por lo que lei por ahi.
PEro los otros temas todavia lso tengo un poco pendientes,si alguien me puede acosejar un par de ideas de que meterle...
  #4 (permalink)  
Antiguo 11/07/2005, 09:10
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
En mi opinión, para el tipo de aplicación que comentas necesitas un Certificado de Seguridad de Servidor, de forma imprescindible, a parte de como dices controlar que introduce el usuario para evitar inyección, encriptación de contraseñas en la BD, utilizar un firewall (imprescindible), obligar a cambios regulares de contraseña y contraseñas largas o complejas, para evitar ataques por fuerza bruta ... y aun así por mucho que pongas, nunca será 100% seguro.
  #5 (permalink)  
Antiguo 11/07/2005, 09:23
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
he leido algo de que por un lado estan los certificados de servidor y por otro los de cliente,quizas es q todavia no tengo muy clara al idea d ecomo va
En esta url
http://www.microsoft.com/spanish/msd.../aplic_sec.asp
viene como Configurar SSL en un servidor Web,y como Configurar certificados de cliente entre otras cosillas.
Lo que le debira meter entonces es certificados en el servidor?
Es q vienen tantos manuales y cosas a hacer q llebo leyendo paja un par d ehoras.... si te fijas en el url q he puesto hay mogollon d ecosas.
  #6 (permalink)  
Antiguo 11/07/2005, 10:29
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Certificados cliente, opcionales (dependerá de tus necesidades), sirver para identificar a usuario (como login y password) pero de otra guisa (utilizan encriptación y tal)

Certificados servidor, imprescindibles, sirven para que todo lo que viaja cliente-servidor y servidor-cliente (hay gente que dice que sólo es en un sentido, pero las entidades certificadoras aseguran que es en los dos) vaya encriptado, es decir cualquier dato introducido en un textbox... (evitar sniffers)

Un certificado servidor lo puedes comprar en una entidad certificadora (tawthe, ipsca....) o crearte uno con el OpenSSL u otro software, te recomiendo que para empezar y evitarte agujeros compres uno, ya que son bastante baratos.
  #7 (permalink)  
Antiguo 12/07/2005, 01:23
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Ahora me voy aponer a mirar como va lo del html encode para la página en la que pueden entrar los alumnos sobre todo que es un cuestionario del curso donde hay dos textbox de texto uno por los profes y otro por observaciones.....
Para el tema de inyección sql ,tengo entendido que si pones una insert con el paramentro concatenado te pueden mandar por ejemplo un shutdown q te pare la bd,si mandas los parametros con comand.text en cdm.aprameters te libraas de esto como en jsp con la preapred statemenet??? como puedes evitar esto??

Y el tema de pagar aunque sea muy barato no creo q a estos les interese,de todas formas recomiendame uno,les cometno luego y si no me meto con openSSl.
  #8 (permalink)  
Antiguo 12/07/2005, 01:42
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Que buena!!! He leido lo del ValidateRequest que no permite la llegada de html al servidor....He ehcho una prueba y ha saltado el error.
Jejeje,un problema menos.
  #9 (permalink)  
Antiguo 12/07/2005, 01:56
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Yo utilizo uno de Ipsca, que son 70€ cada 2 años (más IVA) que me parece una risión, yo creo que el cliente o tu empresa (depende de quien sea el servidor) no debería poner pegas a un asunto como ese, como digo es imprescindible.

Como dices el validateRequest evita que te metan codigo html, de todas maneras yo compruebo todo lo que envia el servidor, es decir, si tengo una consulta:

"select * from tabla where nomre like '%" & nombre.text &"' "
para evitar que me inyecten sql, es decir, que p.ej. me hagan un insert, poniendo en el text:

juan'; Insert into tabla (.....) ';
hago replace de todos los text de la ' por \', los que deben ser númericos si no lo son manda error, y así.
  #10 (permalink)  
Antiguo 12/07/2005, 02:10
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
es decir que si se sustituye toda comilla simple que venga en la cadena por \' se evita las inyecciones aql? ya que entendemos tb que html no va a venir....
  #11 (permalink)  
Antiguo 12/07/2005, 02:17
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
dependerá de tu BD, pero p.ej. para mysql casi si, no sólo es la comilla simple, si no los caracteres especiales. Otro ejemplo, para insertar, consultar, etc. decimales, yo en particular los paso a un string reemplazando , por . para que no de problemas con demasiados parámetros.
No se que más excepciones se pueden crear, ya te digo que dependerá de tu SGBD
  #12 (permalink)  
Antiguo 12/07/2005, 02:35
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Ando con sqlserver.
Me coemto un amgio q si me emtia un shutdown supongo q entre comillas q me paraba la bd y se tiraba mogollon de tiempo ademas haceindolo ya que no es un inmediate.....
Entonces sustituimos las ' por \' .
, por . .

Y el tema de carateres especiales será cuestion de crear un emtodo e ir comprobando las cadenas de caracteres e ir reemplazando....
Tienes tu el metodo creado con todas las cosideraciones q tengas hechas??
En principio no cuesta nada crearlo pero si tienes más consideraciones hechas....
Lo de ipsca mientras viene la encargada.... estoy hechandole un vistazo ala págian web,todo lo que pone certificación digital....
  #13 (permalink)  
Antiguo 12/07/2005, 02:46
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
yo tengo un módulo de acceso a los datos, con las funciones definidas, pasando los parametros mediate: '" & nombre.replace("'","\'") &"', para los decimales y enteros (que no llevan comilla) tengo definidos controles personalizados, textboxnum y textboxdecimal que mediante javascript sólo permiten introducir números o números y . respectivamente, asi como, con un maxlength definido, pero de todas formas para el caso en que el usuario tenga desactivado javascript, en las funciones del módulo de bd, si debe entrar un número, hago, p.ej.

try
modulo.ModificarCantidad(Integer.Parser(textbox1.t ext))
catch ex FormatException
response.write("<script>window.alert(Valores incorrectos')</script>")
end try

para que tampoco se lo salte,

Iba ha hacer algo parecido para los string, es decir, crear un control, que devolviese automaticamente su valor con replace, pero obte por no hacerlo, ya que si el cliente tiene desactivado javascript lo tengo que hacer igual manualmente. Asi que de momento no se me ha ocurrido nada para evitarlo de forma generalizada.

Si utilizas SQL Server, no se como irá el asunto de la ', si será igual que en MySQL, compruebalo.

PD. Se van a negar a pagar un SSL y no una licencia de SQL Server???
  #14 (permalink)  
Antiguo 12/07/2005, 03:01
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
voy a leer detenidamente lo que me pones pero en cuestión a la licencia de sqlserver en lo que es el motor únicamente es gratiruto,por todo eso estoy con sqlserver y web matrix....no sueltan un duro...
  #15 (permalink)  
Antiguo 12/07/2005, 03:11
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
2 últimas preguntas sobre inyecciones sql.
Si utilizas comand.text y luego los parameters en lso cdm.parameters tb les aplicas esto???
Por ejemplo
cmd.paramenters.add("@p1",nombre.replace("'","\'") )

y la segundo es como un usuario puede tener desactivado javascript ? ...
  #16 (permalink)  
Antiguo 12/07/2005, 03:49
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
He visto qeu si meto shutdown o deletes..... entre comillas haber que pasa y da eeror cdo utilizo cmd.paraemters.add en cmabio cuando hay qe protegerlo es cuendo lo metes en la misma liens cocnatenado cuando haces la insert por ejmplo o la select.....ahi no da el error.
  #17 (permalink)  
Antiguo 12/07/2005, 04:04
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Yo no utilizo parametres, pero si lo hiciese, tambien haría los remplace seguramente.
Si yo meto shutdown en un campo de texto que hace una select, me busca los que tengan en el nombre shutdown, si lo hago en una insert, p.ej. en el nombre, el nombre será shutdown, es decir, que no me detiene, lo mismo para si meto inserts....
Puede desactivarlo en las opciones del explorador. (en la misma parte donde esta lo de imprimir en color).
  #18 (permalink)  
Antiguo 12/07/2005, 04:24
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
Vale ok.Esta entendido todo.
Sólo queda entonces el tema de certificacaciones.
Llegó la 'jefa' y me comunico que aunque de momento irá en el servidor que tengo montado, que habia pedido un proyecto a una empresa para crear la pagina web de cara al publico(la mia es la de gestión interna) y que estaba pensando en meter en suservidor(de la empresa...) mi aplicacion tb por lo que me ha dejao un poco out ya q no me había dicho nada,le eh comentado que eso ya sería todo problema suyo ya que mi proyecto no entra lo que pase a partir de septiembre, y que yo lo que quiero es dejarselo bien todo y seguro. Que si lo cambia necesitara alguien que le cambie ciertos parametros que hagan falta.... ya sea el mailing,el tema de cargarlo,el tema de donde esta el sqlserver,el acceso todo lo que conlleve,todo lo de seguridad,y que se lo piense asi q no se como acabará este tema,de todas formas el openssl es chungo de configurar en el servidor??
  #19 (permalink)  
Antiguo 12/07/2005, 04:33
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
el openssl es un generador de certificados, es como comprar uno, pero en vez de comprarlo te creas uno propio. El problema de esto es que tu no eres una autoridad certificadora de confianza y los usuarios necesitarían instalar el certificado raiz generado por tí, si es que confían en ti,
En algunos hilos en los que he participado se habla bastante de este tema.
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 15:29.