摘要:實現思路畫了個簡易流程圖,方便大家理解。如果存在就繼續向下流程,如果不存在則向右流程,返回,這樣就拒絕了不在庫中用戶的訪問,達到了白名單效果。實現代碼參考結語如果有更多白名單問題或者白名單問題都可以留言與我聯系
今天發的是一篇續篇,主要講講如何實現?想閱讀第一篇的,點擊傳送門
首先完善了下管理配置后臺,看下dashbord長什么樣,先睹為快。
實現思路畫了個簡易流程圖,方便大家理解。
在index.php中主要做兩件事情,一個是獲取到客戶端IP,另外一個就是拿這個IP到我們的redis ip庫中檢索。如果存在就繼續向下流程,如果不存在則向右流程,返回403,這樣就拒絕了不在庫中用戶的訪問,達到了白名單效果。
在整個設計中redis是一個非常重要的一個節點。IP存在redis使用的是set類型,為什么使用set類型簡單說明下。
redis中能夠存儲集合的就是list和set,而它們倆的區別就是一個是有序集合,一個是無序集合,且Set集合中不允許出現重復的元素。即多次添加同一個IP只會存在一份拷貝,這太關鍵了,減少了數據冗余或者說我們添加時不需要判斷該IP是否存在。
實現代碼參考:https://github.com/jacoobwang...
結語如果有更多PHP白名單問題或者openresty白名單問題都可以留言與我聯系……^_^
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22863.html
摘要:白名單或者黑名單,目的是為了達到一種受限訪問,希望在名單內用戶可以訪問,就把名單叫白名單希望在名單內用戶拒絕訪問,就是黑名單。但我覺的它不夠靈活,我選擇在應用程序中來實現名單機制。 ip白名單或者黑名單,目的是為了達到一種受限訪問,希望在名單內用戶可以訪問,就把名單叫白名單;希望在名單內用戶拒絕訪問,就是黑名單。無論我們希望使用哪種名單方式,實現方式都一樣。 在nginx下我們通常會考...
閱讀 2989·2021-10-27 14:16
閱讀 701·2021-10-13 09:39
閱讀 3706·2021-09-29 09:46
閱讀 2097·2019-08-30 15:54
閱讀 2606·2019-08-30 15:52
閱讀 3000·2019-08-30 15:44
閱讀 1110·2019-08-30 15:44
閱讀 505·2019-08-30 10:51