我有个问题一直困惑着我,就是我怎么防止非授权人员访问我在外网上暴露出来和服务器交互的地址。具体情况说明:
  我们公司有一套自己的ERP系统,是一套C/S程序。我们公司在全国有上百家的分公司,和总部的交互点大约有1000多个点。这些分公司可以通过使用ERP系统,访问总部的服务器获得一些信息,比如说客户资料、商品价格等。而这套软件是我们公司的软件人员开发的,所以他们知道总部服务器的地址和与外界交互的接口。那么我的问题就来了:如果他们不干了,然后回家自己利用代码和服务器连接读取核心数据,比如说成本价格、利润等等。我应该怎么防止他们读取呢?
说的再明白点:比如说我有个服务器地址是:www.aaa.com/aaa.svc(我们是用wcf通讯的),那么在这个地址下暴露出来一个A类,里面有个一B函数,而这个函数就是读取公司本月利润的。那么我怎么防止他们用代码访问这个地址,调用B函数。说明:
1、利用证书。我可以很明确的回答,现在我们公司就是在利用数字证书进行安全限制,但是这些编程人员在家里的机器上申请个证书太容易了,所以不可靠(不要讨论申请证书的难易程度,因为我亲自试过确实很容易申请到合法证书)。2、利用用户名密码。他们都可以很容易弄到别人的用户名密码,还可以弄到权限很大的角色的用户名密码。再说数据库中存放着将近2000个员工的账户信息,他们真的要在其中隐藏1个2个权限很大的账号,我也不可能及时的发觉啊。3、利用权限。我如何能知道,他提供给我验证的权限和他是实现的功能真实需要验证的权限一致呢?比如说:他要读取公司利润,而读取公司利润的权限应该是A权限,而他提供的却是B权限,但实际读取的却是公司的利润。或者他用一个权限很大的人的用户名获取权限,在访问呢。4、服务端即时验证。先不讨论即时验证对性能的损耗。问题和利用权限一样,我如何能保证他提供给我的及时验证的信息是准确的,他提供的信息和他真实要验证的信息是一样的呢?希望各位高手能提供点意见和建议,有什么好的想法可以提出来大家一起探讨嘛。

解决方案 »

  1.   

    最简单的办法,用vpn限制外部连接。
      

  2.   

    vpn?  vpn!
    这个可以有。
      

  3.   

    http://www.888bk.cn/files/article/info/7/7034.htm
      

  4.   

    1.不是所有人都会像LZ想的那样.(当然也有可能某些人是这样)
    2.如果软件因为开发人员而改变.软件是相当失败的!比如数据连接单独放在一个文本里.如果当我觉得当前的IP或相关信息可能泄露时,我改一下配置就可以了!