网站防止恶意登陆或防盗链的使用

news/2024/5/17 10:36:14/文章来源:https://blog.csdn.net/weixin_34268843/article/details/93695612
  • 使用场景:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于网站用户交流沟通使用”之类的“假图片”。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了。常见的防盗链系统,一般使用在图片、音视频、软件等相关的资源上。

  • 实现原理:把当前请求的主机与服务器的主机进行比对,如果不一样则就是恶意链接,反之则是正常链接。

  • 不说了,直接上代码:
String address=request.getHeader("referer"); //获取页面的请求地址String pathAdd=""; //定义空字符串if(address!=null){ //判断当前的页面的请求地址为空时URL urlOne=new URL(address);//实例化URL方法pathAdd=urlOne.getHost(); //获取请求页面的服务器主机}String address1=request.getRequestURL().toString(); //获取当前页面的地址String pathAdd1="";if(address1!=null){URL urlTwo=new URL(address1);pathAdd1=urlTwo.getHost(); //获取当前服务器的主机}if(!pathAdd.equals(pathAdd1)){ //判断当前页面的主机与服务器的主机是否相同 }
  • 根据这个原理 可以设置企业白名单

使用Request对象设置页面的防盗链

  • 所谓的防盗链就是当你以一个非正常渠道去访问某一个Web资源的时候,服务器会将你的请求忽略并且将你的当前请求变为按正常渠道访问时的请求并返回到相应的页面,用户只有通过该页面中的相关操作去访问想要请求的最终资源。

  • 例如,你有一个访问某资源的网址,但是你事先不知道这个网址是有防盗链的,那么当你输入该网址时你可能会发现,并没有马上跳转到你想要的资源页面而是一些无关的信息页面,但是就是在这些信息页面中你发现有一个超链接或是其他操作可以跳转到你所访问的最终资源页面。

  • 这就是防盗链技术了,好了来看一个具体应用:

Request.java  package net.csdn.request;import java.io.IOException;  
import java.io.PrintWriter;import java.util.Enumeration  
import javax.servlet.RequestDispatcher;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
public class Request extends HttpServlet {  
public void doGet(HttpServletRequest request, HttpServletResponse response)  
throws ServletException, IOException {getDoorChain(request, response);}  private void getDoorChain(HttpServletRequest request,  HttpServletResponse response) throws IOException {  String referer = request.getHeader("referer");  if(referer==null || !referer.endsWith("http://localhost:8080/Request/index.jsp")){  response.sendRedirect("http://localhost:8080/Request/index.jsp");  return;  }  response.setCharacterEncoding("utf-8");  response.setContentType("text/html;charset =utf-8");  PrintWriter pw = response.getWriter();  pw.write("喜剧片《东成西就》");  }  
public void doPost(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {  doGet(request, response);  }  }  
index.jsp  <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
<%  
String path = request.getContextPath();  
String basePath = request.getScheme()+"://"+request.getServerName()+":"  
+request.getServerPort()+path+"/";  
%>  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  <head>  <base href="<%=basePath%>">  <title>My JSP 'index.jsp' starting page</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">      <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->  </head>  <body>  这里是防盗链技术的应用检测! <br>  <a href ="/Request/Request" >喜剧片 </a>  </body>  
</html>  
  • 例如我最终想要通过http://lcoalhost:8080/Request/Request这个网址获取到我想要的《东成西就》 的资源可是当我真正的输入这个网址时,却转到了: http://localhost:8080/Request/index.jsp这个页面

  • 只有当你点击“喜剧片”这个超链接时才会真正的得到你想要的资源页面

什么是Referer?

这里的 Referer 指的是HTTP头部的一个字段,也称为HTTP来源地址(HTTP Referer),用来表示从哪儿链接到目前的网页,采用的格式是URL。换句话说,借着 HTTP Referer 头部网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。

20190510094711.png

什么是空Referer,什么时候会出现空Referer?

  • 首先,我们对空Referer的定义为,Referer 头部的内容为空,或者,一个HTTP请求中根本不包含Referer头部。

  • 那么什么时候HTTP请求会不包含Referer字段呢?根据Referer的定义,它的作用是指示一个请求是从哪里链接过来,那么当一个请求并不是由链接触发产生的,那么自然也就不需要指定这个请求的链接来源。

  • 比如,直接在浏览器的地址栏中输入一个资源的URL地址,那么这种请求是不会包含Referer字段的,因为这是一个“凭空产生”的HTTP请求,并不是从一个地方链接过去的。

20190510094721.png

  • 在防盗链设置中,允许空Referer和不允许空Referer有什么区别?
  • 在防盗链中,如果允许包含空的Referer,那么通过浏览器地址栏直接访问该资源URL是可以访问到的;
  • 但如果不允许包含空的Referer,那么通过浏览器直接访问也是被禁止的。

  • 欢迎关注 http://yunlong.gihub.io

转载于:https://www.cnblogs.com/rolandlee/p/10842708.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_728727.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站就必须用响应式布局吗?MVC视图展现模式之移动布局

本文先引入给读者一个自己研究的机会&#xff0c;下次深入说明一下&#xff1a; 废话不多说&#xff0c;直接上图 新建一个mvc的项目 在视图里面添加一个移动端视图 正常访问一下 Bootstrap自带的响应式的方式&#xff08;页面代码并没有改变&#xff09; 我们来模拟一下移动端…

重庆文化执法部门清理27个违法音乐网站

【TechWeb】3月20日消息&#xff0c;据“扫黄打非”微信号消息&#xff0c;2018年12月&#xff0c;重庆市文化市场行政执法总队接网友举报称&#xff0c;有音乐网站提供免费听歌服务&#xff0c;上传了大量含有违背社会公德内容的歌曲&#xff0c;随即展开立案调查。 经查&…

2016年10大SEO趋势预测

针对很多人所说的老SEO已经死亡&#xff0c;转型&#xff0c;还是提倡新SEO&#xff0c;这都不是需要格外注意的东西&#xff0c;做好自己的能力&#xff0c;视野提升&#xff0c;储备下快速学习的能力。ASO也好&#xff0c;社交SEO也好或者是传统SEO也好&#xff0c;最重要的是…

Vue+thinkJs博客网站(一)之vue多页面应用的webpack3配置

一.项目简介 本项目使用vue作为前端框架&#xff0c;thinkJs作为后端框架&#xff0c;构建个人博客网站&#xff0c;页面分为博客展示和后台管理&#xff0c;主要目的是学习使用thinkJs。现在只完成了主要的博客增删改功能&#xff0c;发现webpack的配置遇到了一些坑&#xff0…

LAMP网站平台的构建和PHP应用部署

LAMP是目前最成熟的一种企业网站应用模式&#xff0c;可提供动态web站点应用及开发环境构成组件&#xff1a;Linux 、Apache、MySQL、PHP/Perl/Python公司需求&#xff1a;搭建一台可以支持动态web站点 的网站&#xff0c;并且可以支持PHP语言开发的环境&#xff0c;通过PHP部署…

说说我平时用的几个学习网站(网址)吧,希望可以给你帮助

为什么80%的码农都做不了架构师&#xff1f;>>> 1.颜色表及html代码&#xff0c;平时用用到色彩可以查下&#xff1a;颜色查询 2.在线代码着色高亮&#xff0c;这个特别好用&#xff0c;我平时在云笔记上都用它&#xff0c;记得复制的时候全部都复制进去&#xff…

阿里云系列——3.网站备案初步核审(详细步骤)---2015-11.12

网站部署之~阿里云系列汇总 http://www.cnblogs.com/dunitian/p/4958462.html 流程图&#xff1a; 1.注册账号 进&#xff1a;https://beian.gein.cn/account/login.htm 注册一个账号&#xff0c;然后会收到邮件 立即备案 如何办理首次备案&#xff1f;如果您从未办理过备案&am…

什么样的网站才能让搜索引擎喜欢?

要做好一个网站&#xff0c;更多的重心而不是网站有多么好&#xff0c;而是网站的运营、网站的seo优化、网站的推广有没有做好。对于一个网站的发展来讲&#xff0c;怎么做好这一系列的工作才是最为重要的。搜索引擎都喜欢什么样的网站&#xff1f;怎么样做才能让搜索引擎爱上你…

大型网站技术架构(六)网站的伸缩性架构

2019独角兽企业重金招聘Python工程师标准>>> 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能&#xff0c;通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的…

centos下linux运行asp网站搭建配置-mono+nginx

一、首先安装一些需要的软件包 1、 首先更新CentOS上的软件包&#xff1a;yum –y update。 2、 安装一些需要的库&#xff1a; yum -y install gcc gcc-c bison pkgconfig glib2-devel gettext make libpng-devel libjpeg-devel libtiff-devel libexif-devel giflib-devel l…

站长基础知识,网站被镜像是好是坏,被恶意镜像怎么处理

网站被镜像一直以来&#xff0c;感觉这个问题应该不会出现在自己的网站&#xff0c;因为只是个小站应该不会被镜像吧&#xff0c;然而并不是这样&#xff0c;通过后台加速和服务器后台流量统计发现&#xff0c;网站流量非常异常&#xff08;有时候pv上万&#xff09;&#xff0…

超酷的测速网站Ookla SPEEDTEST

测试网速的工具、网站估计不少&#xff0c;在百度一搜都能搜出一大堆&#xff0c;下面介绍一个国外测试网速的网站&#xff0c;用户体验相当棒&#xff0c;感觉酷毙了&#xff0c;那些其它测试网速的网站跟这个比起来&#xff0c;简直弱毙了。这个网速测试网站就是&#xff1a;…

小虾视频网站广告屏蔽器 V 5.0

本软件用于屏蔽一些视频网站的广告&#xff0c;也具备屏蔽一些恶意网站的作用&#xff01;如过你发现在电脑正常的情况下有些网友打开开&#xff0c;那是因为屏蔽的原因&#xff0c;只要单击一键还原广告就OK了&#xff01;~ 打开软件后不要老是点击不然容易出错&#xff01;要…

50-100台中小规模网站集群搭建实战项目(超实用企业集群)

【老男孩运维班期中搭建50-100台规模的集群实战】学员入学第8-12周&#xff0c;必须完成的中小型网站集群实战&#xff0c;老男孩linuxpython高薪运维班全员项目实战1、项目规划&#xff1a;搭建50-100台规模的集群实战设计2、开启7-8台虚拟机&#xff08;kickstart无人值守装机…

知识点详解的一些网站搜罗

2019独角兽企业重金招聘Python工程师标准>>> NSTimer 使用 绝对超详细&#xff08;2&#xff09;:http://blog.csdn.net/davidsph/article/details/7899731 iOS 随机数(Fixed)&#xff1a;http://blog.csdn.net/ouyangtianhan/article/details/17464149 应用程序挂…

常见的网站服务器架构有哪些(转载)

常见的网站服务器架构有哪些&#xff08;转载&#xff09;简单说下以下的架构都是在假设已经优化过linux内核的情况下进行初级篇&#xff1a;&#xff08;单机模式&#xff09;假设配置&#xff1a;&#xff08;Dual core 2.0GHz,4GB ram,SSD&#xff09;基础框架&#xff1a;a…

版权黑洞:视觉中国关闭网站整改 全景网络已暂停服务

【TechWeb】 一天四次上热搜&#xff0c;致歉&#xff0c;视觉中国这次是真的触犯了众怒。 北京时间4月9日周二晚人类首张黑洞照片公布之后不久 &#xff0c;有网友发现视觉中国将这张图片列为“版权所有”的编辑图片&#xff0c;称“此图片是编辑图片&#xff0c;如用于商业用…

将英文版的sharepoint网站模板转成中文Sharepoint可以使用的模板

微软提供了很多Sharepoint的网站模板&#xff1a;http://www.microsoft.com/technet/windowsserver/sharepoint/wssapps/templates/default.mspx但是很多都是英文版的&#xff0c;在中外sharepoint下不能使用&#xff0c;不能安装。这里有一个很酷的网站模板转换工具(.STP Lang…

如何给网站加入优雅的实时反爬虫策略

2019独角兽企业重金招聘Python工程师标准>>> 你的网站内容很有价值&#xff0c;希望被google&#xff0c;百度等正规搜索引擎爬虫收录&#xff0c;却不想让那些无节操的山寨爬虫把你的数据扒走坐享其成。本文将探讨如何在网站中加入优雅的反爬虫策略。 【思路】 反爬…

特大型网站技术架构脑图

为什么80%的码农都做不了架构师&#xff1f;>>> 转载于:https://my.oschina.net/dyxp/blog/348841