2014-01-29 29 views
1

我想知道這是多麼大的一個工作才能夠做到以下幾點:如何個性化鏈接,用戶的IP地址

我想有隻通過特定的計算機訪問網站某些網頁。當然,我可以隨時提供用戶名和密碼,但我希望它進一步受到限制。

舉例說明:

  • 我給用戶A頁A存取。
  • 我給用戶一個用戶名和密碼來訪問page-A。
  • 用戶-A嘗試與朋友(用戶-B)共享用戶名和密碼。
  • 用戶B試圖訪問頁面-A與用戶A的憑據,但它 不起作用,因爲用戶B必須是用戶A的計算機上這樣做。

我知道這是可能實現的,因爲金融機構使用這種安全性,但是我可以自己實現嗎?如果是這樣,怎麼樣?

- 編輯 -

雅妮提到的那個IP過濾的做法並不明智,因爲用戶IP地址經常變動。現在我的問題轉向使用會話或localstorage/webstorage來控制對某些網頁的訪問。

您需要提取哪些本地數據?我想可能需要一個數據庫來存儲計算機數據,供系統進一步參考。

+0

你可以,但你不應該。 IP!=電腦。一臺電腦可能會從多個IP地址向您的站點發出請求,而且我有很多計算機可以通過一個IP向您的站點發出請求。 – meagar

回答

2

IP地址,對於大多數家庭用戶來說,暫時只。 ISP會每幾周/幾個月更換一次,除非用戶擁有靜態IP(通常成本更高)。

此外,用戶可以將他的筆記本電腦帶到咖啡店,並立即從不同的IP登錄。

因此,IP地址過濾是一個好主意,只有當您想要對用戶(國家,州等)進行地理阻擋時,但對我的老實看來,長時間驗證用戶不是一個好主意的時間。

您可能只需要使用Javascript或PHP等服務器端技術來實現cookie/session/localstorage,這將成爲計算機專用的瀏覽器&。

餅乾+ IP地址

聯合餅乾/ localStorage的技術以及IP地址其實是可以對具有securiy的第二級是一個好主意時(即IP變化,有一個警告,如「似乎當您從不同的IP地址登錄時,請回答安全問題......「)。

而且 - 當用戶從一個不同的瀏覽器,但同一臺計算機(以及同一個IP)登錄你可以有一個額外的驗證問題。

您甚至可以實施IP地址歷史記錄,例如gmail's。

但是,如果您只需選擇其中一種方法 - 我一定會使用cookies/localStorage。

如何在Javascript中設置和獲取本地數據的示例。

隨着localStorage的(HTML5):

localStorage.setItem('userAuthenticated', '1'); 
localStorage.getItem('userAuthenticated'); 

與餅乾:

function setCookie(cname,cvalue,exdays) 
{ 
var d = new Date(); 
d.setTime(d.getTime()+(exdays*24*60*60*1000)); 
var expires = "expires="+d.toGMTString(); 
document.cookie = cname + "=" + cvalue + "; " + expires; 
} 

function getCookie(cname) 
{ 
var name = cname + "="; 
var ca = document.cookie.split(';'); 
for(var i=0; i<ca.length; i++) 
    { 
    var c = ca[i].trim(); 
    if (c.indexOf(name)==0) return c.substring(name.length,c.length); 
    } 
return ""; 
} 

希望這有助於!

+0

這非常有道理。感謝您提醒我關於知識產權常常是非永久性的問題。我會研究一下我可以用cookies/session/localstorage做些什麼。 – mateikav

+0

@mateikav我的榮幸,我已經添加了更多的細節到我的答案:) – Yani

+0

這是很好的信息。我認爲只使用cookie/localstorage方法就足夠了。現在我需要研究如何做到這一點。 – mateikav