从登录页跳转到另一个页面就叫做URL跳转。
1.URL跳转
URL跳转一般分为两种,(1)客户端跳转;(2)服务端跳转。对用户来说,两种跳转都是透明的,都是指向或者跳转到另一个页面,页面发生了改变。但对于开发者来说,是有区别的。
(1)客户端跳转
客户端跳转也被称为重定向,用户浏览器地址栏的URL会发生明显变化。
比如:当前页面为http://www.a.com/new.php,当用户点击登录按钮会指向http://www.a.com/login.php,且页面发生变化,这就是客户端跳转。
比如Index.jsp中重定向语句,代码如下: <% response.sendRedirect("x.jsp"); %>
当我们在浏览器中打开Index,jsp时,执行到此语句,页面就会发生变化,且URL也会变化,在HTTP协议中表现如下:
当浏览器请求Index.jsp后,收到302指示(也叫重定向)就会立刻进行跳转,而用户是感受不到的。
(2)服务器端跳转
服务器端跳转也叫URL转发,服务器端跳转时,用户浏览器的地址栏URL是不会改变的。
比如:当前页面为http://www.a.com/new.php,当用户点击登录按钮,浏览器地址栏的URL没变,但是页面会发生变化。
在java servlet中跳转代码如下: publicvoid doGet(HttpServletRequest request,HttpServletResponse reponse) throws ServletException,IOException{ this.doPast(request,response); } public void doPast(HttpServletRequest request,HttpServletResponse respon) throws SerlvetException,IOException{ request.getRequestDispatcher("upload.jsp").forward(request,response); }
(3)其他
还有一些跳转不属于转发,也不属于重定向,而是直接向服务器发送请求
比如<a>标签
<a href="http://www.a.com/news.jsp">新闻列表</a>
2.钓鱼
网络中的钓鱼指的是钓鱼攻击
比如:攻击者模拟腾讯网站,或者一些CS架构软件,当用户使用这些软件的时候,攻击者可以截获用户的账号信息。
使用URL跳转可以突破钓鱼软件检测系统。
这类钓鱼软件检测系统在检测是否是钓鱼网站或者恶意系统的时候,检测的是URL,而并非网站的内容。比如,从qq邮箱打开一个URL的时候,会弹出一个网页提示。但并不是所以的网站都会提示,一些知名网站是不可能做钓鱼网站的,所以邮箱就不会拦截,也就是说,当邮箱碰到不认识的网站的时候才会进行提示。
这样攻击者就可以利用URLt跳转来躲过恶意检测。比如:http://www.baidu.com/page?=http://www.ta0bao.com