有人可以从页面外部访问我的WebMethods吗?

时间:2009-09-10 12:13:57

标签: asp.net webmethod

我有一个页面,它有webmethods我可以通过ScriptManager从aspx页面使用theese,我想知道如果有人可以从页面外部访问theese方法,如果它是如何保护WebMethods?

4 个答案:

答案 0 :(得分:4)

您的网络方法与网页具有相同的安全性。如果您需要确保安全访问它们,请在允许操作之前检查有效会话,经过身份验证的用户等。对Web方法的请求应包括确定发出请求的用户是否已经过身份验证所需的各种cookie。根据经过身份验证的用户的身份,他们的角色等,您可以确定是否应该处理该请求。如果您使用Web配置来保护您的页面,则应用于页面的安全性也应该应用于页面上的Web方法。

请注意,您不能保证有人不会简单地发出独立于浏览器的请求(即请求始终来自您的应用程序的UI)。您需要对任何页面进行相同类型的安全检查。

请注意,我正在谈论保护添加到ASPX页面的Web方法。对于 Web服务,可以完全不同地处理身份验证和授权。例如,每个请求可能需要凭证,并且可能是方法本身的“包络”或参数的一部分。保护Web服务可能是其自身问题的主题。

答案 1 :(得分:3)

无法完全保护Web方法。毕竟,如果您从网页访问它们,则可以直接从客户端浏览器访问它们。

您可以添加一个额外的参数,该参数需要包含某种一次性密码/令牌,并在呈现页面时生成一个。这将使某人在没有实际访问您的网站的情况下继续使用您的网络服务变得更加困难。

答案 2 :(得分:1)

是添加WebMethod属性使该方法可远程调用,这意味着您可以使用javascript调用它。简单地说,您不应该暴露您不希望第三方能够呼叫的WebMethods。但有关安全性和Web服务的更多信息,请参阅:http://msdn.microsoft.com/en-us/magazine/cc188947.aspx

答案 3 :(得分:1)

但你可以secure them easily

相关问题