黑马day04 凤姐艺妓录&防盗链
2015-06-18 13:45
232 查看
实验:通过referer信息防盗链:
原理图:
![](http://img.blog.csdn.net/20150618134703783?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDAxMDc2OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
例子:通过实例实现防盗链
1.建立一个访问的servlet-->FengJieServlet:
修改tomcat-->>conf-->server.xml文件,添加如下代码:
![](http://img.blog.csdn.net/20150618135901775?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDAxMDc2OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150618135915772?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDAxMDc2OQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
点击www.361.com的超链接:我们发现他被拦截了....重定向到了localhost
原理图:
例子:通过实例实现防盗链
1.建立一个访问的servlet-->FengJieServlet:
package cn.itheima.request; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class FengJieServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String refer = request.getHeader("Referer"); if(refer==null||"".equals(refer)||!refer.startsWith("http://localhost")) { response.sendRedirect(request.getContextPath()+"/index.html"); return; } response.setContentType("text/html;charset=utf-8"); response.getWriter().write("我在黑马的记忆录....收货了很多很多"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }2.在host为localhost下建立一个html文件命名为index.html.在其中有一个超链接可以点击转到FengJieServlet....(这个FengJieServlet是localhost的专有。为了防止其他网站盗用链接,因此,使用了防盗链的技术,下面试核心代码,根绝referer头判断host....然后拦截...)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>index.html</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <a href="/day04/servlet/FengJieServlet">凤姐的回忆录</a> </body> </html>3.为了盗用localhost的信息,我们在tomcat建立虚拟目录...www.361.com虚拟目录
修改tomcat-->>conf-->server.xml文件,添加如下代码:
<Host name="www.361.com" appBase="E:\test"></Host>4.在E:\test建立ROOT文件夹,然后再ROOT文件夹中建立index.html.也指向了localhost虚拟主机下的FengJieServlet
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>index.html</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <a href="http://localhost:8080/day04/servlet/FengJieServlet">凤姐的回忆录</a> </body> </html>我们进行访问:如果是localhost进行访问,不进行连接,如果是www.361.com的host就进行拦截,拦截之后重定向localhost的主页、
点击www.361.com的超链接:我们发现他被拦截了....重定向到了localhost
相关文章推荐
- Sublime Text 3 安装Package Control官方教程
- javascript:让表单 文本框 只读,不可编辑的方法
- 从assets中把zip资源包复制到SD卡中
- 灰度图转伪彩色图
- 我曾经面试过这样一个问题
- 快捷键让SublimeText在编文件快速在浏览器打开
- 今日之谬言,不谦谓悟道
- Linode从Xen迁移到KVM
- Linode从Xen迁移到KVM
- Payment Terms 付款条件
- [数据结构]线性表之单链表的类模板实现
- C++12.2 隐含的this指针(不懂)、mutable数据成员
- C#应用SQlite数据库常见问题汇总
- 【数据库】mysql的安装
- Oracle之ROW_NUMBER() OVER函数
- Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别
- Extjs4之 formpanel使用
- UINavigationController和UITabBarController合用[转载比较好理解]
- java nio 网络框架实现(转)
- jQuery 序列化表单数据 serialize() serializeArray()