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