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