跳轉無非是傳遞過來的參數未過濾或者過濾不嚴,然后直接帶入到跳轉函數里去執行。
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; ?>