URL跳转漏洞

什么是URL跳转

借助未认证的URL跳转,将应用程序引导到不安全的第三方区域,从而导致的安全问题。

利用方法

Header头跳转:通过设置Location进行跳转
JavaScript跳转:通过window.location.href进行跳转

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String url = request.getParameter("url");
    // 客户端跳转
    //response.sendRedirect(url);
    // META标签跳转:通过设置refresh进行跳转
    //response.setHeader("Refresh","1;url="+url);
%>

如上,http://localhost:8080/urlJump/jump.jsp?url=http://www.baidu.com, 当访问该链接的时候会跳转到百度,这样通过容易从一些知名的网站,跳转到不安全的第三方网站,比如:http://www.qq.com/?url=http://www.demo.com ,用户会容易以为点击的链接属于qq的网站,以为是安全的,但是会跳转到demo这个网站,用户容易信任该网站,如果攻击者设置了和qq一样的登陆界面,那么用户很有可能会登陆,从而信息被盗取。

进阶

防御

  • referer的限制如果确定传递URL参数进入的来源,我们可以通过该方式实现安全限制,保证该URL的有效性,避免恶意用户自己生成跳转链接
  • 加入有效性验证Token我们保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值