浏览器中直接输入URL的时候,它的头文件是空的,因此,可以在访问的时候做两个判断:头文件是否为空以及以什么页面进行跳转,如果不符合跳到错误页面即可。
什么是Referer?
这里的 Referer 指的是HTTP头部的一个字段,也称为HTTP来源地址(HTTP Referer),用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着 HTTP Referer 头部网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。
什么是盗链
假设一个网站的首页中想显示一些图片信息,而该网站的服务器中并没有这些图片资源,它就通过在Html文件或jsp文件中使用img标签链接到其他网站的图片资源,将其展示给浏览者,这就是盗链。
如何防盗链
在本网站中,对所有请求都进行判断请求信息中Referer请求头的值是否是本站的url,如果不是可以阻止其访问或跳转到指定的页面。
防盗链原理
http标准协议中有专门的字段记录referer
一来可以追溯上一个入站地址是什么
二来对于资源文件,可以跟踪到包含显示他的网页地址是什么
因此所有防盗链方法都是基于这个Referer字段
防盗链的作用
在很多地方,如淘宝、拍拍、有啊等C2C网站,发布商品需要对宝贝进行描述,就需要图片存储,而为了使自己辛辛苦苦拍摄的图片不被别人调用,就需要防盗链的功能。
提供防盗链的图片网站很多,如有照片、又拍网、百度相册、QQ相册、网易相册等等,但是既能支持网店外链,又有防盗链功能的网站很少,其中做的比较好的如又拍网、有照片,可以选择单独图片或者多张图片防盗链,使用方便快捷。
使用Referer请求头要注意以下两点:
如果是在浏览器地址栏上直接访问,那么请求信息中就没有Referer请求头。
如果在页面中点击超链接或者提交表单,请求信息中存在Referer请求头。
Referer请求头有以下两个用途:
统计工作
防盗链
什么是空Referer,什么时候会出现空Referer?
首先,我们对空Referer的定义为,Referer 头部的内容为空,或者,一个HTTP请求中根本不包含Referer头部。
那么什么时候HTTP请求会不包含Referer字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。
比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer字段的,因为这是一个“凭空产生”的HTTP请求,并不是从一个地方链接过去的。
在防盗链设置中,允许空Referer和不允许空Referer有什么区别?
在防盗链中,如果允许包含空的Referer,那么通过浏览器地址栏直接访问该资源URL是可以访问到的;
但如果不允许包含空的Referer,那么通过浏览器直接访问也是被禁止的。
相关推荐
HttpURLConnection+jsoup防盗链 {"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661...
使用 Java Filter 来实现防盗链的解决方案。 ```java public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest...
在当前的数字时代,数据安全和资源保护是企业必须面对的重要问题。特别是在网络环境中,如何防止资源被...FineReport报表软件与决策系统的结合使用,使得通过Java实现防盗链技术成为可能,增强了企业报表数据的安全性。
这个"Java爬虫小例子"项目展示了如何利用Java来爬取小型网站,特别是那些有防盗链保护的图片资源。防盗链是网站为了防止其他网站直接引用其服务器上的资源而采取的一种防护措施。下面我们将深入探讨相关的知识点。 ...
至于“testdownload”这个压缩包子文件,可能是博主提供的示例代码或者测试用例,用于演示如何实现防盗链功能。通常,这样的代码示例会包括请求处理逻辑、URL构建、Token生成和验证等相关部分。 总的来说,实现文件...
本文将详细介绍如何利用Java实现防盗链功能,并提供一个具体的应用实例。 首先,了解防盗链的基本概念。防盗链(Anti-Leech)是指防止其他网站未经许可直接引用或下载你网站上的资源,如图片、视频或报表等,这可能...
首先,我们来看看如何在Java中实现防盗链功能。核心思路是检查请求的来源,判断是否来自合法的源。一种常见的方式是检查`Referer`头,这是浏览器在发送HTTP请求时附带的上一个页面的URL。如果`Referer`指向的不是...
二、Java实现防盗链 1. 创建自定义Filter 在Java Web应用中,我们可以通过实现Servlet API中的`Filter`接口来创建一个过滤器,用于拦截请求并检查`Referer`字段。以下是一个简单的`DaoLianFilter`示例: ```java ...
本篇文章将深入探讨Java防盗链filter的工作原理、实现方式以及其在实际应用中的重要性。 首先,理解什么是"filter"。在Java Web开发中,Filter是Servlet API的一部分,它允许开发者在请求到达目标Servlet之前或之后...
2. **防盗链的实现方式**: - **HTTP Referer验证**:通过检查HTTP请求头中的`Referer`字段来判断请求来源是否合法。 - **Token验证**:在图片URL中加入特定的标识符(如Token),并在服务器端进行验证。 - **...
- Java实现:UrlVerify-Java1.0.tar和UrlVerify-Java1.0.zip可能包含一个用Java编写的防盗链插件源代码。Java版本的插件可以利用Java Servlet或Filter技术,在请求到达流媒体资源之前进行拦截和验证。 - ASP实现:...
该项目是采用Java 11编写的FastDFS文件服务器访问与防盗链封装设计源码,共计23个文件,涵盖Java源代码、属性配置文件、JAR包和Markdown文档等多种类型。该设计旨在提供高效安全的文件访问解决方案,支持普通访问与...
在 Java 中,实现防盗链可以通过使用 Filter 来实现。Filter 是一种特殊的 Servlet,可以在 Servlet 请求前和响应后执行一些操作。在防盗链中,我们可以使用 Filter 来判断用户是否已经登录,如果没有登录,则重定向...
本资源包“servlet高级应用过滤器、防盗链等一系列技术工具打包”聚焦于Servlet的高级应用场景,提供了多种实用的技术工具,以提升Web应用程序的安全性、性能和用户体验。 首先,我们来探讨“过滤器(Filter)”。...
JSP(JavaServer Pages)作为流行的动态网页技术,提供了实现防盗链功能的手段。下面我们将详细探讨如何使用JSP实现防盗链。 首先,我们需要理解防盗链的基本原理。防盗链的核心是判断请求来源,通常我们希望只有从...
总的来说,"request.getHeader("referer")"在Java Web开发中是实现防盗链功能的重要工具,通过检查来源URL,服务器可以有效控制资源的访问权限,保障网站权益。但同时,开发者也需要考虑到隐私保护和安全策略的平衡...
本项目为基于JavaScript的仓储管理系统WMS,重点实现了防盗链功能,采用Filter技术进行安全防护。项目源码包含165个文件,其中Java代码33个、HTML模板25个、JavaScript脚本20个、样式表文件(CSS, LESS, SCSS)共44...
模块开启后,可以使用Nginx的secure_link指令来实现防盗链功能。可以通过编译安装Nginx时加入--with-http_secure_link_module选项来启用该模块。 2. Nginx配置文件中的具体配置项和方法。其中涉及到了secure_link...
系统集成了心跳包与防盗链机制,实现用户状态实时同步与资源保护。支持单选和多选投票功能,并允许查看投票结果及用户数据。采用前后端分离设计,通过JavaScript与后台进行数据交互,确保系统的稳定与安全。
本教程将详细讲解如何在Java环境中使用FastDFS客户端进行文件上传、下载、防盗链设置以及生成缩略图等操作。 首先,安装FastDFS需要准备以下步骤: 1. **环境配置**:确保服务器已安装了基础软件,包括GCC编译器、...