如何让用户只能从办公室登录?

时间:2014-02-26 09:18:55

标签: php ip authorization

我有一个具有简单用户/通行证授权的Web应用程序。客户希望允许其员工仅在办公室使用它。

最好的方法是什么?

  • 创建允许的IP列表并查看用户的IP是否与之匹配?
  • 当他们来到办公室时以及在他们离开办公室时激活/停用数据库中的用户记录(为经理添加此工作)?
  • 也许配置浏览器将一些特定数据发送到服务器(用户代理)?
  • 别的什么?

Web应用程序是用PHP编写的,PostgreSQL

2 个答案:

答案 0 :(得分:1)

您希望使用实际上安全的内容,而不是通过IP限制访问。

HTTPS连接上的用户名和密码至少应该是不可操作的,但您可能希望查看客户端SSL证书。它们可以在Apache或其他Web服务器软件中配置。如果用户名/密码验证不够,则这是下一步(也许是最后一步)。

更新:

也就是说,许多应用程序提供商将为订户提供一种为其帐户实施ACL的方法。您甚至可以强制人们在允许他们访问您的服务之前考虑他们的ACL。想一想:

  

您的系统中设置了一个帐户,允许从任何地方登录。上   创建时,ACL是UNSET。用户登录并立即进行指导   到ACL设置页面,他们必须提供IP地址或   与其帐户关联的范围或子网。你可以很聪明   可能使用现有的IP地址或子网预先填充内容   甚至在ARIN上查看他们的IP是否在网络中   在其帐户中分配给公司名称。一旦ACL被设置(或   尽管你有警告,但他们确认他们想留下来   他们的ACL打开),他们可以访问您的服务。如果他们尝试登录   从其他地方,他们(和你)通过电子邮件(或短信或   无论如何都是企图破坏。如果他们不再有权访问   他们的ACL列出的IP(即由于新的上游而进行的IP重新编号)   互联网提供商和糟糕的计划),他们可以拨打您的电话支持   谁将通过其他方式验证它们。传真确认也许,   因为那太安全了......

用户管理的ACL不是一种“确定无误”的方式,但它可能足以满足您的需求,并且它肯定会在您的客户中灌输您最关心的最佳利益。

答案 1 :(得分:0)

我找到了一种简单的方法来查看用户是否已从办公室计算机登录到网络应用程序:

Manually add some string to browser's config parameter'user-agent'并检查$_SERVER['HTTP_USER_AGENT']是否包含它。

例如'Mozilla / 5.0(Windows NT 6.1; rv:27.0)Gecko / 20100101 Firefox / 27.0 OFFICE'

当然它绝对不安全,但它可能适合客户。