日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

整理常見實(shí)現(xiàn)防盜鏈功能的方案

admin
2025年1月9日 10:6 本文熱度 749

在熱門平臺(tái)上有許多的熱點(diǎn)新聞,熱門的圖片、視頻等資源,每天都吸引大量的用戶觀看和下載。于是就有攻擊者通過爬蟲等一系列技術(shù)手段,把熱門平臺(tái)上的資源拉取到自己的網(wǎng)站然后呈現(xiàn)給用戶,從而攻擊者達(dá)到了即不用提供資源也能賺錢的目的,如下圖所示盜取資源的過程圖:

?

    為此,熱門平臺(tái)為了防止其他的小站點(diǎn)盜取其資源,于是就使用防盜鏈來保護(hù)自身資源不被竊取。下面我們聊聊常見的幾種防盜鏈實(shí)現(xiàn)方案。

1、Nginx實(shí)現(xiàn)方案

    在HTTP協(xié)議頭里有一個(gè)Referer的字段,Referer可以告訴服務(wù)器該網(wǎng)頁請(qǐng)求是從哪里鏈接過來的,如下的請(qǐng)求頭截圖:

    那么可以利用請(qǐng)求頭上的Referer攜帶的值,使用Nginx在網(wǎng)關(guān)層做防盜鏈,這個(gè)也是最簡(jiǎn)單的實(shí)現(xiàn)防盜鏈功能的方式之一。

    Nginx通過攔截訪問資源的請(qǐng)求,通過valid_referers關(guān)鍵字定義的白名單,校驗(yàn)請(qǐng)求頭中Referer地址是否為本站,如不是本站請(qǐng)求,那么就拒絕這個(gè)請(qǐng)求的訪問,Nginx的配置如下所示:

location ~*\.(gif|jpg|png|jpeg)$ {    root /web;    valid_referers none blocked www.longxiabiancheng.com;    if($invalid_referer){        return 403;    }}

    Nginx的方式可以限制大多數(shù)普通的非法請(qǐng)求,但不能限制有針對(duì)性的攻擊請(qǐng)求,因?yàn)楣粽呖梢酝ㄟ^偽造Referer信息來繞過Nginx的檢查。

2、SpringBoot的過濾器實(shí)現(xiàn)方案

    過濾器同樣是使用Referer的原理,在SpringBoot中聲明一個(gè)過濾器,然后獲取到當(dāng)前請(qǐng)求頭當(dāng)中的Referer,如下代碼所示:

public class MyResourceFilter implements Filter {    @Override    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {        HttpServletRequest request = (HttpServletRequest) servletRequest;        HttpServletResponse response = (HttpServletResponse) servletResponse;        //獲取referer        String referer =request.getHeader("Referer");        //指定通過的域名        String allowedDomain = "https://www.longxiabiancheng.com";        //如果不是可以通過的域名,直接返回        if(StringUtils.isEmpty(referer) || !referer.startsWith(allowedDomain)){            response.getWriter().write("longxiabiancheng");            return;        }    }}

    過濾器中通過比對(duì)Referer中的來源,如果它不是我們?cè)试S的來源,那么就直接拒絕請(qǐng)求。其實(shí)攻擊者依然可以偽裝Referer,所以還是無法徹底解決資源被盜取的問題。

3、token驗(yàn)證的實(shí)現(xiàn)方案

    用戶登錄之后服務(wù)器通過生成一個(gè)token,然后每次用戶請(qǐng)求后端都需要將token攜帶給服務(wù)器,如果請(qǐng)求中沒有token或者token解析失敗,就直接拒絕請(qǐng)求的訪問。

    但是這種方式攻擊者依然可以通過先請(qǐng)求我們的登錄接口拿到token后,然后把token放在請(qǐng)求頭上,繼而達(dá)到偽裝成正常的用戶請(qǐng)求,這樣就繞過token驗(yàn)證。

4、時(shí)間戳驗(yàn)證方案

    正常的用戶打開一個(gè)網(wǎng)頁之后總會(huì)停留一定的時(shí)間,即使此用戶停留的再短也會(huì)比其他的竊取工具(爬蟲)停留的時(shí)間長(zhǎng),利用這個(gè)特點(diǎn)在每次響應(yīng)客戶端的時(shí)候,后端給客戶端響應(yīng)一個(gè)時(shí)間戳,然后前端攜帶這個(gè)時(shí)間戳請(qǐng)求后端接口,后端拿到時(shí)間戳后與當(dāng)前的時(shí)間做比對(duì),核心的代碼如下所示:

private boolean checkTime(HttpServletRequest request, HttpServletResponse response) {        //獲取時(shí)間戳        String timestampStr = request.getParameter("timestamp");
       try {            //時(shí)間戳不存在,直接拒絕訪問            if (timestampStr == null) {                response.getWriter().write("不可以繼續(xù)訪問哦");                return false;            }
           long timestamp = Long.parseLong(timestampStr);            long currentTimestamp = new Date().getTime();            //如果停留的時(shí)間大約指定的時(shí)間  就認(rèn)為不是機(jī)器            if (Math.abs(currentTimestamp - timestamp) < 500) {                response.getWriter().write("不可以繼續(xù)訪問哦!");                return false;            }            return true;        } catch (Exception e) {            return false;        }    }

    請(qǐng)求種的時(shí)間戳與當(dāng)前的時(shí)間計(jì)算差值,如果差值大于設(shè)定的值,我們就認(rèn)為是正常用戶的請(qǐng)求,反之認(rèn)定為盜竊用戶請(qǐng)求,則拒絕訪問。時(shí)間戳的方式也存在一定的誤判,用戶可能確實(shí)就在網(wǎng)頁上停留很短的時(shí)間。

5、圖形驗(yàn)證碼的實(shí)現(xiàn)方案

    圖形驗(yàn)證碼是一種比較常規(guī)的限制辦法,在下載資源,瀏覽關(guān)鍵信息的時(shí)候,都必須要求用戶手動(dòng)操作驗(yàn)證碼,典型的圖形驗(yàn)證碼如下所示:

    使用圖形驗(yàn)證碼使得一般的爬蟲工具無法繞過校驗(yàn),從而起到保護(hù)資源的目的。

    防盜鏈其實(shí)不是百分之百可以防住資源被盜竊的問題,它只能增加破解的難度,因?yàn)橹灰W(wǎng)站的數(shù)據(jù)能夠正常訪問,那攻擊者就能偽裝成正常用戶來竊取數(shù)據(jù)。在一些大公司中,他們會(huì)去結(jié)合大數(shù)據(jù)分析用戶的行為,將一些不正常的用戶行為定義到黑名單中,然后在黑名單上的用戶請(qǐng)求會(huì)被攔截。


該文章在 2025/1/9 10:06:21 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 手机在线影院 | 欧美亚日韩精品影视 | 欧美日韩精品一区二区三区高清 | 国产精品国语自产拍在线观看 | 午夜男女羞羞爽爽爽视 | 黑人巨大精品欧美一区二区免费 | 在线观看国产一区二区三区 | 香港日本韩国三级网站 | 亚洲国产天堂 | 在线精品91国产在线观看 | 两性色午夜视频免费老司机 | 青青国产精品一区二区 | 国产永久精品一区二区污污 | 啦啦啦ww | 日本中文字幕电影 | 国产乱子伦精 | 九九精品99久 | 国产呦系列(771vip观看) | 亚洲精品视频在线观看 | 亚洲国产第一区二区香蕉 | 国产v视频| 亚洲精品在看在线观看高清 | 欧洲视频中文字幕在 | 亚洲高清成 | 中文字幕第一页在线 | 中本亚洲欧美国产日韩 | 国产高清免费在线 | 精品国产aⅴ一区天美传媒 开心五月丁香花综合网 | 国产女人喷潮免费视频 | 欧美色综合高清免费 | 欧美国产日韩a视频在线不卡 | 亚洲欧美国产精品一区二区 | 精品亚洲成a人片在线观看 愉拍自拍一区首页 | 日本中文字幕一区二区有码 | 蜜桃影视 | 91久色视 | 清除唯美| 91精品在线国产 | 日韩综合一卡二卡三卡死四卡 | 91免费视频网站 | 国产又粗又爽视频 |