基於django中間件的防盜鏈,利用meta中的http_referer


簡單實現防盜鏈功能

主要思路:

1.在中間件中設置process_request

2.利用http_referer來判斷請求連接是否是本域名或ip地址發來的

class ReferMiddle(MiddlewareMixin):
    def process_request(self, request):
        # 從request中取出meta
        meta = request.META
        print(meta.get('HTTP_REFERER'))
        print(meta)
        # 判斷meta中的HTTP_REFERERkey是否有值,沒有就繼續允許訪問
        if not meta.get('HTTP_REFERER'):
            return None
        else:
            # 判斷referer中的域名或ip地址是否是本服務器的,是就允許訪問
            http_referer = meta.get('HTTP_REFERER').split(":")
            print(http_referer[1])
            if http_referer[1] == "//192.168.3.118":
                return None
            # 不是就返回error頁面
            else:
                return render(request,"error.html")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM