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