Pergunta

Eu tenho uma página e tem webmethods posso usar theese a partir da página aspx via ScriptManager, eu estou querendo saber se qualquer um pode acessar theese métodos do lado de fora da página, se é como eu posso garantir os WebMethods?

Foi útil?

Solução

Protegendo os métodos da web completamente não é possível. Afinal, se você está acessando-los de sua página web, eles estão sendo acessados ??diretamente do navegador do cliente.

Você pode adicionar um parâmetro extra que precisa conter algum tipo de senha de uso único / token e gerar um quando a página é renderizado. Isso vai tornar mais difícil para alguém para continuar usando o webservice sem realmente visitar seu site.

Outras dicas

Seus métodos da web terá o mesmo tipo de segurança como suas páginas web. Se você precisa ter certeza de que eles estão sendo acessados ??com segurança, verifique se há uma sessão válida, usuário autenticado, etc. antes de permitir a ação. O pedido para o método web deve incluir os vários biscoitos necessários para determinar se o usuário que fez a solicitação tenha sido autenticado. Com base na identidade do usuário autenticado, seus papéis, etc. você pode determinar se o pedido deve ser processado. Se você estiver usando a configuração web para garantir suas páginas, a segurança aplicando a página deve também ser aplicado a métodos da web na página.

Note que você não pode garantir que alguém não vai simplesmente emitir o independente pedido de um navegador (ou seja, que o pedido é sempre de dentro da interface do usuário do seu aplicativo). Você precisa fazer o mesmo tipo de verificações de segurança que você faria para qualquer de suas páginas.

Note aqui que eu estou falando sobre como proteger métodos da web adicionados a uma página ASPX. Para os serviços de web , autenticação e autorização podem ser tratadas de forma completamente diferente. Para exemplos, as credenciais podem ser necessários com cada pedido e pode ser parte de um "envelope" ou um parâmetro sobre o método em si. Protegendo serviços web é provavelmente um assunto para uma pergunta própria.

Sim adicionando o atributo WebMethod faz esse método remotamente resgatável, o que significa que você pode chamá-lo usando javascript por exemplo. Basta colocá-lo não deve expor WebMethods que você não quer que terceiros para ser capaz de chamar. Mas por mais algumas informações sobre segurança e webservices, consulte: http: // MSDN .microsoft.com / en-us / revista / cc188947.aspx

Sim.

Mas você pode fixá-los facilmente .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top