Fórum Segurança em Web Services #22833
30/01/2007
0
Como posso implementar segurança em Web Services de maneira rápida?
Eu preciso que o meu WebService não fique exposto a qualquer usuário e que somente minha aplicação possa acessá-lo a partir de um usuário e senha. Alguém tem idéia de como eu posso fazer isso?
Patrickreinan
Curtir tópico
+ 0Posts
12/04/2007
Pedro Carvalho
Primeiro vc deve desabilitar a opção de anonimos do IIS clicando com o botão direito em cima da sua aplicação escolha propriedade/segurança do diretório/editar... desmarque a opção acesso anônimo, desmaque a autenticação integrada do windows e marque a opção Autenticação básica...
Obs: quando vc fou depurar seu webservice não esqueça de marcar a opção autenticação integrada do windows...
vc pode colocar o usário e senha na autentição básica do windows...
Gostei + 0
18/04/2007
Ghostmutante
<WebMethod(Description:="Descreva aqui seu WebMethod")> _ Public Function Meu_WebMethod( _ ByVal var1 As String, _ ByVal var2 As String, _ ByVal var3 As Integer, _ ByVal var4 As String) As Integer
Acima fizemos nossas declaracoes, agora vamos a seguranca:
Dim tem_erro as integer = 1
´aqui um exemplo se o campo eh obrigatorio
if var1 = "" then
tem_erro = -1
end if
´aqui um exemplo se a requisicao veio da sua pagina
´isso seria o mais importante para vc saber se o cara acessou de sua
´aplicacao ou naum
´contamos que minha url seja: http://www.meu_site.com.br
If Not (InStr((Page.Request.ServerVariables("SERVER_NAME") & Page.Request.ServerVariables("PATH_INFO")).ToLower, "meu_site") > 0) Then
tem_erro = -1
End IfBom, agora vamos a nossa funcao:
If tem_erro > 0 then
Dim strSQL as String
strSQL = " INSERT INTO Minha_tabela (" & vbCrLf
strSQL &= " Campo1, " & vbCrLf
strSQL &= " Campo2, " & vbCrLf
strSQL &= " Campo3, " & vbCrLf
strSQL &= " Campo4, " & vbCrLf
strSQL &= ") VALUES (" & vbCrLf
strSQL &= var1, " & vbCrLf
strSQL &= var2, " & vbCrLf
strSQL &= var3, " & vbCrLf
strSQL &= var4 " & vbCrLf
strSQL &= ");"
´ ae executa toda a para, commando e tra la la...
Return 1
Else
Return -1
End if
End Function
Ae é o seguinte, guando tu chamar isso, tens o Return em Integer, se ele retornar -1 é pq deu erro, se retorna 1 deu certo...
Bom, isso foi um exemplo basico, temos varios outras formas para se fazer isso... Fiz a forma mais simples e funcional apenas para demonstrar como funciona.
Qualquer coisa chama que demonstra outras funções mais avançadas.
Abraços.
Gostei + 0
20/04/2007
Pedro Carvalho
Vc deve importar o seguinte namespace: Imports System.Net.
Depois vc cria a instância do seu webService, abaixo do Page_Load da sua página coloque esse comando:
nome_do_objeto_instanciado_do_webService.Credentials = New NetworkCredential(ConfigurationManager.AppSettings(´wsLogon´), ConfigurationManager.AppSettings(´wsPass´), ConfigurationManager.AppSettings(´wsDomain´))
No webConfig vc vai colocar essa minha de comnado:
<appSettings>
<add key=´wsLogon´ value=´nome_do_usuario_criado_na_maquina_com_permisao_de_adm´/>
<add key=´wsPass´ value=´senha_do_usuario´/>
<add key=´wsDomain´ value=´servidor_do_banco_de_dados´/>
</appSettings>
É claro que quando vc hospedar suas página vc deve informar ao administrador do provedor que ele deve fazer as configurações que falei na primeira postagem...
Um abraço...
Gostei + 0
20/04/2007
Carlosmaxx
Aqui onde eu trabalho nós fizemos da seguinte forma:
No IIS, na pasta virtual do web service colocamos uma configuração para que apenas o IP do próprio servidor possa acessá-lo.
Com isso vc impede que outras máquinas vejam seu web service. É claro que com essa configuração, as aplicações que consomem esse web service devem estar no mesmo servidor que ele.
É simples e funciona bem!
Abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)