我有一个页面,它有 webmethods 我可以通过 ScriptManager 从 aspx 页面使用这些方法,我想知道是否有人可以从页面外部访问这些方法,如果我怎样才能保护 WebMethods?
4 回答
您的 Web 方法将具有与您的网页相同的安全性。如果您需要确保它们被安全访问,请在允许操作之前检查有效会话、经过身份验证的用户等。对 Web 方法的请求应包括确定发出请求的用户是否已通过身份验证所需的各种 cookie。根据经过身份验证的用户的身份、他们的角色等,您可以确定是否应处理请求。如果您使用 web 配置来保护您的页面,则应用于页面的安全性也应该应用于页面上的 web 方法。
请注意,您不能保证某人不会简单地独立于浏览器发出请求(即,请求始终来自应用程序的 UI)。您需要对任何页面进行相同类型的安全检查。
请注意,这里我说的是保护添加到 ASPX 页面的 Web 方法。对于Web 服务,身份验证和授权的处理方式可能完全不同。例如,每个请求都可能需要凭据,并且可能是“信封”的一部分或方法本身的参数。保护 Web 服务的安全可能本身就是一个问题。
完全保护网络方法是不可能的。毕竟,如果您从您的网页访问它们,它们就是直接从客户端浏览器访问的。
您可以添加一个额外的参数,该参数需要包含某种一次性密码/令牌,并在页面呈现时生成一个。这将使某人在不实际访问您的网站的情况下继续使用您的网络服务变得更加困难。
是的,添加 WebMethod 属性使该方法可远程调用,这意味着您可以使用 javascript 调用它。简单地说,您不应该公开您不希望第三方能够调用的 WebMethods。但有关安全性和 Web 服务的更多信息,请参阅:http: //msdn.microsoft.com/en-us/magazine/cc188947.aspx
是的。
但是您可以轻松地保护它们。