基于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