Servicios web - Seguridad y rendimiento

01/02/2006 - 11:27 por Santiago Barro | Informe spam
Hola a todos,
tenemos una base de datos Sql Server en Internet.
El enlace con esta base de datos se realiza sólamente a través de un
servicio web que es el encargado de insertar, modificar o eliminar registros
y de devolver resultados a través de datasets, todo a través de
procedimientos almacenados.

Desde una pequeña aplicación se accede directamente a ese servicio web.
Como medidas de seguridad, introducimos las credenciales en la clase del
servicio web de esta manera:

'
'Credenciales de seguridad
'
Public Class CredencialesSOAP
Inherits SoapHeader
Public Login As String
Public Password As String
End Class

#Region " Seguridad "
Public Credenciales As CredencialesSOAP
'--
' Devuelve TRUE si se permite la conexion con el servicio
'--
Private Function PermitirConexion() As Boolean
If Credenciales.Login = Login And Credenciales.Password = Password
Then
Return True
Else
Return False
End If
End Function
#End Region


==Y en todos los procedimientos insertamos el siguiente codigo:
==<WebMethod(), SoapHeader("Credenciales")> _
Public Function TraerUsuario(usu as long) As DataSet
'Seguridad
If PermitirConexion() = False Then
Throw New Exception("No dispone de permisos para conectar con el
servicio")
Exit Function
End If
...


==Desde la aplicación llamamos a los procedimientos de esta manera:
==Dim Serv As New WebService.Service
Dim cred As New WebService.CredencialesSOAP
cred.Login = login
cred.Password = password
Serv.CredencialesSOAPValue = cred
dim dset as dataset=Serv.TraerUsuario(1)
...


Mi pregunta es si creeis que es un buen nivel de seguridad o se debería
mejorar de alguna manera.
Y, ¿como responden los servicios web a nivel de rendimiento?. Hemos hecho
pruebas de 3 - 4 conexiones simultáneas y todo a funcionado bien pero si
hubiera bastantes conexiones simultáneas (40 - 50) ¿podriamos tener
problemas?


Muchas gracias y un saludo
Santiago Barro
 

Leer las respuestas

#1 bialguos
01/02/2006 - 11:40 | Informe spam
No soy un gran experto, pero en temas de seguridad miraria las
especificaciones WSE implementandolas, sobre el rendimiento si estas
desarrollando en 1.1 o incluso en 2.0 pasar Datasets como parametro de
los servicios Web no es la mejor opción porque la información que
transmite es exagerada, por supuesto es la mas facil de implementar y
automatica y tendras que valorar en facilidad de desarrollo (lo cual
nos lleva atimepo y dinero) y rendimiento. Yo creo que la mejor opción
es realizar clases propias para el rendimiento aunque no es necesario
hacer esto para todos los datasets deberias de estudiar aquellos que
sean los mas frecuenemente utilizados, tamaño, complejidad... en mi
opinionel tema que planteas no es una tonteria y la gente de Microsoft
deberia de dejar claro en algun sitio este tipo de información y
arquitectura

Preguntas similares