php中怎么使用nginx實現(xiàn)一個防盜鏈功能

本篇文章為大家展示了php中怎么使用nginx實現(xiàn)一個防盜鏈功能,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

創(chuàng)新互聯(lián)公司專注于潮安網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供潮安營銷型網(wǎng)站建設(shè),潮安網(wǎng)站制作、潮安網(wǎng)頁設(shè)計、潮安網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造潮安網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供潮安網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

說明:服務(wù)器A:源服務(wù)器、服務(wù)器B:目標服務(wù)器

場景:服務(wù)器A的一篇文章被服務(wù)器B通過爬蟲抓取 但圖片鏈接還是通過服務(wù)器B進行訪問

          此時,圖片數(shù)量多或文件過大,會對服務(wù)器A造成帶寬的消耗

思路:添加防盜鏈

解決:通過防盜鏈來進行處理

           1.通過Referer來進行判斷【不推薦 referer可以進行偽造 僅提高訪問門檻】

              ····安裝nginx模塊 ngx_http_referer_module 進行配置以達到效果

            2.通過sgin(簽名)進行驗證【推薦 簽名算法驗證 難以破解】

              ····安裝nginx模塊 accesskey模塊

#開啟accesskey 
accesskey             on 
#設(shè)置加密模式md5和sha-1 二選一
accesskey_hashmethod  md5|sha-1;
#設(shè)置加密參數(shù) 可自行定義 
accesskey_arg         "sgin";
#設(shè)置加密算法 按照博主的算法 應(yīng)該是這樣 md5(check_sign.客戶端IP)
accesskey_signature   "check_sign$remote_addr";

#搞定之后重啟一下nginx

        ····接下來在php進行加密 如果不帶加密參數(shù)進行驗證 會返回403

<?php 
  //假設(shè)當前目錄下存在logo.png


  // 在瀏覽器中預(yù)覽 發(fā)現(xiàn)返回403
  echo  "<img src='./logo.png'>";
  
 
  // 再次在瀏覽器中預(yù)覽 可以正常顯示 (如果你選擇的是sha-1加密則使用sha1函數(shù)進行加密)
  $sign = md5('sign'.$_SERVER['REMOTE_ADDR']);
  echo "<img src='./logo.png?sign={$sign}'>";
  

   // 需要注意 php和nginx的加密一定要相同 否則無法驗證成功
?>

上述內(nèi)容就是php中怎么使用nginx實現(xiàn)一個防盜鏈功能,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:php中怎么使用nginx實現(xiàn)一個防盜鏈功能
網(wǎng)站URL:http://muchs.cn/article46/jcjdeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷全網(wǎng)營銷推廣、外貿(mào)網(wǎng)站建設(shè)、云服務(wù)器、、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站