Web安全之URL跳转科普

跳转无非是传递过来的参数未过滤或者过滤不严,然后直接带入到跳转函数里去执行。

 


0x01 JS

js方式的页面跳转
1.window.location.href方式

 <script language="javascript" type="text/javascript">
           window.location.href="target.aspx"; 
    </script>


2.window.navigate方式跳转

<script language="javascript">
    window.navigate("target.aspx");
</script>

3.window.loction.replace方式实现页面跳转,注意跟第一种方式的区别

<script language="javascript">
    window.location.replace("target.aspx");
</script>

有3个aspx页面(1.aspx, 2.aspx, 3.aspx),进系统默认的是1.aspx,当我进入2.aspx的时候, 2.aspx里面用window.location.replace("3.aspx");与用window.location.href ("3.aspx");

从用户界面来看是没有什么区别的,但是当3.aspx页面有一个"返回"按钮,调用window.history.go(-1); wondow.history.back();方法的时候,一点这个返回按钮就要返回2.aspx页面的话,区别就出来了,当用 window.location.replace("3.aspx");连到3.aspx页面的话,3.aspx页面中的调用window.history.go(-1);wondow.history.back();方法是不好用的,会返回到1.aspx。

4.self.location方式实现页面跳转,和下面的top.location有小小区别

 <script language="JavaScript">
          self.location='target.aspx';
   </script>

5.top.location

 <script language="javascript">
          top.location='target.aspx';
   </script>

6.不推荐这种方式跳转

<script language="javascript">
    alert("返回");
    window.history.back(-1);
   </script>

0x02 HTML

 Htm中meta标签可以实现页面跳转

<head>

<!-- 以下方式只是刷新不跳转到其他页面-->

<meta http-equiv="refresh" content="10">

<!-- 以下方式定时转到其他页面 -->

<meta http-equiv="refresh" content="5;url=hello.html">

</head>

0x03 PHP

php中header函数可实现跳转,当然其他服务器端编程语言都可以实现例如java web的redirect等等。

<?php

//重定向浏览器

header("Location: http://bbs.lampbrother.net");

//确保重定向后,后续代码不会被执行

exit;

?>
原文地址:https://www.cnblogs.com/-qing-/p/10920526.html