7.9.3 访问IP限制

7.9.3  访问IP限制

除了以上两种方式以外,还有一种比较简单的验证方式,就是通过对来源IP的检查来进行验证,我们只允许指定IP的服务器来访问,保证点对点的安全,我们可以在Web Service的方法中加入对IP的检查。

(示例位置:光盘\code\ch07\WebService1)

  1. bool ValidateIP(int UserID, out string exceptionInfo)  
  2. {  
  3.     exceptionInfo = "";  
  4.     string uip = HttpContext.Current.Request.UserHostAddress;  
  5.     Common dal = new Common();  
  6.     List<string> ips = dal.GetPermitIp(UserID);//得到该用户ID所允许的IP列表  
  7.     if (ips == null || ips.Count == 0)  
  8.     {  
  9.         exceptionInfo = "调用Web服务的客户端IP未被允许,无法访问!";  
  10.         return false;  
  11.     }  
  12.     if (ips.Contains(uip)) //允许IP列表中包含该IP  
  13.     {  
  14.         return true;  
  15.     }  
  16.     exceptionInfo = "调用Web服务的客户端IP未被允许,无法访问!";  
  17.     return false;  

在具体Web方法里调用该方法检查用户访问者是否是以我们允许的IP进行访问的,以确保安全。

优点:简单,防止非指定客户机器访问。

缺点:IP是可以伪造的;维护IP地址表比较烦琐。且只适合于固定IP访问者的情况。

总之,上面几种方式只是一个简单的示例,讲解了怎样通过编程和配置的方式拒绝没有合法验证单据的客户端访问Web Service来保护你的Web Service。在你的安全模型中要求的复杂级别应该由你的商业需求决定。可以是一种或几种验证机制的组合。当然并不是所有的Web应用程序都需要上面的安全模式,尤其是当你的Web Service可以自由使用的时候,并不需要上面的安全机制处理。

posted @ 2012-02-06 14:50  ^_^肥仔John  阅读(255)  评论(0编辑  收藏  举报