2014-02-26 39 views
2

我有一個簡單的用戶/傳遞授權的Web應用程序。客戶想讓他的員工只能從辦公室使用它。如何讓用戶只能從辦公室登錄?

什麼是最好的方法來做到這一點?

  • 創建允許的IP列表並查看用戶的IP是否匹配它?
  • 激活/停用數據庫中的用戶記錄,當他們離開辦公室時(爲管理員添加此項工作)?
  • 也許配置瀏覽器發送一些特定的數據到服務器(用戶代理)?
  • 還有別的嗎?

的Web應用程序是寫在PHP和PostgreSQL

+4

將應用程序放在防火牆的本地(內部)環境中? – naththedeveloper

+0

託管本地,只允許私有IP(10.x.x.x)。或者之前提到的防火牆。 –

+0

@FDL,該應用程序適用於50個其他客戶,它每週更新並連接到我們的其他互聯網服務。我們需要控制文件和數據庫系統,所以我們不能在本地安裝它。 – alex23

回答

0

我發現了一個簡單的方法來查看用戶是否已經登錄從辦公室計算機在web-app:

Manually add some string to browser's config parameter「用戶代理」,並檢查$_SERVER['HTTP_USER_AGENT']如果它包含它。

例如 '的Mozilla/5.0(Windows NT的6.1; RV:27.0)壁虎/ 20100101火狐/ 27.0 OFFICE'

當然這是絕對不安全的,但它可以是適合於客戶端。

1

而是通過限制IP訪問的,你想用的東西,實際上是安全的。

HTTPS連接上的用戶名和密碼至少應該是難以理解的,但您可能需要查看客戶端SSL證書。它們可以在Apache或其他Web服務器軟件中配置。如果用戶名/密碼認證不夠,這是下一步(也許是最後一步)。

UPDATE:

這就是說,現在很多應用提供商需要做的是爲用戶實現了他們的帳戶的訪問控制列表的方法。你甚至可以強迫人們在允許他們訪問你的服務之前考慮他們的ACL。想想這樣:

在您的系統中設置一個帳戶,允許從任何地方登錄。在創建 時,ACL是UNSET。用戶登錄並立即指向 到ACL設置頁面,在那裏他們必須提供IP地址或與其帳戶關聯的範圍或子網。你可以很聰明,並且 用他們現有的IP地址或子網預先填充東西,甚至可以使用 查看ARIN的內容,看他們的IP是否在分配給他們賬戶公司名稱的網絡 中。一旦ACL被設置(或者 他們,儘管你的警告,確認他們想保持 他們的ACL打開),他們可以訪問你的服務。如果他們嘗試從其他地方登錄 ,他們(和您)會通過電子郵件(或SMS或 )通知任何違規企圖。如果他們不再有權訪問 他們的ACL列出的IP(即由於新的上游 互聯網提供商和錯誤的規劃而導致的IP重新編號),他們可以致電您的電話支持 誰將通過其他方式進行驗證。傳真確認或許, 因爲這是如此的安全......

用戶管理ACL是不是「萬無一失」的方式,但它可能是你需要足夠有效的,它肯定會灌輸一種意識在你的客戶中,你最關心自己的最大利益。