2016-10-16 116 views
-2

有沒有什麼方法可以僅使用JavaScript來白名單IP地址,還是我必須使用php或其他服務器端語言?通過白名單,我的意思是隻有一定數量的指定IP可以訪問網頁。如果JavaScript不可行,請告訴我。如何使用Javascript白名單IP?

+0

JavaScript是客戶端,所以很容易被繞過。最好通過你的網絡服務器完成(最有可能的是Apache/IIS) –

+0

問題有點打開。什麼是服務器軟件,或者試圖在瀏覽器中執行此操作,並使用adblock/ghostry等東西。有沒有用戶認證系統,ACL(訪問控制列表)認證或類似的腳本。如果有阻止列表,則有允許列表。你正在處理路由器/ AP(接入點)或類似的? –

+0

對不起,我正在使用Github主持一個網頁。我上面描述的方法無論如何不會提供太多的安全性。我只是好奇,看看是否可以完成。上次我查了,Github不支持服務器端語言。 – YourEverydayCodingEnthusiast

回答

1

這是可能的,但會很容易規避客戶端IP檢查。用戶需要做的就是在瀏覽器中禁用Javascript,並且可以訪問該網站。

IP白名單通常由Web服務器(Apache,Nginx,IIS)完成;不是Web應用程序(PHP,Python,NodeJS),特別是注意客戶端腳本。

如果你真的想這樣做的客戶端,你必須真正叫喚,告訴你一個服務你使用的是什麼IP地址。有關如何執行此操作的示例,請參見this SO question。然後,您可以將IP地址與允許的IP數組進行比較。如果它不匹配,拒絕訪問的最簡單方法是將用戶從網站中重定向。

再次,客戶端白名單是INSECURE,並沒有建議所有!

+0

我一直懷疑,但是,仍然有辦法做到這一點?我並沒有試圖像Fort Knox那樣安全,所以任何事情都可以做到。 – YourEverydayCodingEnthusiast

+0

@YourEverydayCodingEnthusiast如果他們只是打開開發人員工具並立即繞過開發人員工具,那麼它不會增加任何安全性 – abc123

+0

我會注意您所得到的建議,使用js訪問任何相關內容都是毫無意義的,只有一點例外:整個頁面是用js和js禁用構建的,沒有什麼可看的。還要注意,殭屍工具通常不會執行js,因此js白名單將完全保留爲零,以防止任何人不需要。使用PHP或其他服務器端語言,這很容易,真正微不足道,而且會起作用。任何使用無腳本的人都不會懷疑首先有白名單運行。 – Lizardx