您好,登錄后才能下訂單哦!
本篇文章為大家展示了php中怎么使用nginx實現一個防盜鏈功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
說明:服務器A:源服務器、服務器B:目標服務器
場景:服務器A的一篇文章被服務器B通過爬蟲抓取 但圖片鏈接還是通過服務器B進行訪問
此時,圖片數量多或文件過大,會對服務器A造成帶寬的消耗
思路:添加防盜鏈
解決:通過防盜鏈來進行處理
1.通過Referer來進行判斷【不推薦 referer可以進行偽造 僅提高訪問門檻】
····安裝nginx模塊 ngx_http_referer_module 進行配置以達到效果
2.通過sgin(簽名)進行驗證【推薦 簽名算法驗證 難以破解】
····安裝nginx模塊 accesskey模塊
#開啟accesskey accesskey on #設置加密模式md5和sha-1 二選一 accesskey_hashmethod md5|sha-1; #設置加密參數 可自行定義 accesskey_arg "sgin"; #設置加密算法 按照博主的算法 應該是這樣 md5(check_sign.客戶端IP) accesskey_signature "check_sign$remote_addr"; #搞定之后重啟一下nginx
····接下來在php進行加密 如果不帶加密參數進行驗證 會返回403
<?php //假設當前目錄下存在logo.png // 在瀏覽器中預覽 發現返回403 echo "<img src='./logo.png'>"; // 再次在瀏覽器中預覽 可以正常顯示 (如果你選擇的是sha-1加密則使用sha1函數進行加密) $sign = md5('sign'.$_SERVER['REMOTE_ADDR']); echo "<img src='./logo.png?sign={$sign}'>"; // 需要注意 php和nginx的加密一定要相同 否則無法驗證成功 ?>
上述內容就是php中怎么使用nginx實現一個防盜鏈功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。