页面跳转、URL直接访问限制
总结
- 由于菜单栏中前进后退的存在,document.referrer获取页面来源的方法并不可靠
- 可以通过判断 window.opener 是否为 null,来限制通过地址栏输入url访问。但是必须使用 window.open 来实现页面跳转
document.referrer
定义
- 打开到当前页面的那个页面的URI
- A Uniform Resource Identifier (URI) 是一个紧凑的字符串用来标示抽象或物理资源。
- 它包括了URL和URN
- URL和URN的区别在于,URL带有网络访问协议,例如
ftp://ftp.is.co.za/rfc/rfc1808.txt(tel:+1-816-555-1212不属于URL)
返回空字符串的情况
- 纠错:跨域只有在特殊的几种方法不可以,其他都是可行的
- 纠错:https跳转http谷歌和IE9亲测都可以
- a标签跨域可以获得
- meta标签来控制不让浏览器发送referer
<meta content="never" name="referrer">- 请参考
https://www.cnblogs.com/qq3279338858/p/10844401.html
- 请参考
- a标签设置rel="noreferrer"(兼容IE7+)
- 直接在浏览器中输入地址
- 通过修改Location进行页面导航的方法,除了以下几种,其余都能成功获取
- location.assign:IE9跨域后无法获取;同域时谷歌和IE都可以获取
- location.reload:谷歌可以,IE9不可以。带不带参数都一样
- history
- 所有方法在IE9均无法获得(包括back 、forward、go)
- 谷歌也只有以下方法可以(pushState、replaceState)
- window.open方式打开新窗口
- IE获取不到
- 谷歌可以正常获取
- 鼠标拖拽打开新窗口
- 点击Flash内部链接,各个浏览器效果不同(不详述)
- 在微信对话框中,点击进入微信自身浏览器
- 扫码进入微信或QQ的浏览器
window.opener
定义
- 如果当前窗口是由另一个窗口打开的, window.opener保留了那个窗口的引用(window对象). 如果当前窗口不是由其他窗口打开的, 则该属性返回 null.
能够获取的条件
- 只有通过window.open才会返回对象,其他都是null
- 跨域时谷歌返回的对象,不能访问资源,只能对窗口本身进行操作
- IE9同域时可以通过访问 window.opener.location.href 对象去获取丢失的referrer信息。跨域依然能够获取到对象,但location为空
页面跳转、URL直接访问限制的更多相关文章
- 页面跳转 url地址的写法
跳转地址:分两类,wikipage和aspx页面: wikipage:当新建webpart,在网站里新建一个wikipage,然后将webpart添加进wikipage,这种情况下跳转页面需要添加si ...
- 微信小程序页面跳转url如何传对象参数
两步走 首先第一步:wx.navigateTo({ url:"XXX"+"¶ms="+ JSON.stringify(obj); }) 第二步获 ...
- nodejs处理页面跳转url地址的处理
使用status函数设置状态码 router.get("/list/:id",(req,res)=>{ let id = req.params.id; res.locals. ...
- Html中设置访问页面不在后进行其他页面跳转
Html中设置访问页面不在后进行其他页面跳转 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- PHP 登录完成后如何跳转上一访问页面
访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访问的页面 项目需求 访问网站页面时,有的页面需要授权才能访问,这时候就会要 ...
- 微信小程序页面-页面跳转失败WAService.js:3 navigateTo:fail url not in app.json
微信小程序新建页面的要素一是新建的文件名称和其子文件的名称最好一致,不然容易出问题,在小程序页面跳转中如果出现WAService.js:3 navigateTo:fail url not in app ...
- 页面跳转时,url 传大数据的参数不全的问题+序列化对象
1.页面跳转时,url 传大数据的参数不全的问题 //传参: url: '/pages/testOfPhysical/shareEvaluation?detailInfo=' +encodeURICo ...
- Loadrunner如何遍历一个页面中的url并进行访问?
最近在网上到一个关于loadrunner遍历一个页面中的url并进行访问的脚本,就把它用我们自己的项目实践了一下,发现有一点不完善. 原始版本: Action(){char temp[64];int ...
- 自定义PHP页面跳转函数redirect($url, $time = 0, $msg = '')
利用PHP的header()函数,可以实现页面跳转,如 header("Location: " . $url); 但它有个缺点,一旦HTTP报头块已经发送,就不能使用 header ...
随机推荐
- canvas画小叮当
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- return,break,continue三者区别
详解:http://www.cnblogs.com/yangdabao/p/6172210.html return:直接结束这个方法,后面所有代码不再执行,不管循坏外,还是循环内,全部停止,直接返回 ...
- 左耳听风-ARTS-第1周
Algorithm https://leetcode.com/problems/longest-common-prefix/ class Solution { public String longes ...
- python2和3的区别
一.默认编码 2:ascii 3:utf-8 二.数字 python3无long
- 阿里巴巴语音识别模型 DFSMN 的使用指南
阿里巴巴 2018 年开源的语音识别模型 DFSMN,将全球语音识别准确率纪录提高至 96.04%.DFSMN 模型,是阿里巴巴的高效工业级实现,相对于传统的 LSTM.BLSTM 等声学模型,该模型 ...
- 第七届蓝桥杯省赛javaB组 第七题剪邮票
剪邮票 如[图1.jpg], 有12张连在一起的12生肖的邮票.现在你要从中剪下5张来,要求必须是连着的.(仅仅连接一个角不算相连)比如,[图2.jpg],[图3.jpg]中,粉红色所示部分就是合格的 ...
- WebService客户端(以命令方式创建)
以命令的方式生成WebService客户端: 创建一个Project项目,客户端项目名称WS_Client,在cmd界面进入JDK的bin目录,输入以下命令 完整格式: C:\Program File ...
- WEB 性能优化导图
看了一下网上对于web性能优化的一些帖子,不是很直观,花了点时间画了一个思维导图. refers: https://segmentfault.com/a/1190000011936772 https: ...
- python调试pdb
开始调试 python3 -m pdb pdb.py break 或 b line_num 设置断点设置断点 continue 或 c继续执行程序 list 或 l查看当前行的代码段 step 或 s ...
- 解决Flask局域网内访问不了的问题
在服务器上使用http://127.0.0.1:5000可以访问,但是在局域网内通过服务器IP地址访问不了,解决办法为:设置Flask为任何地址均可以访问,post设置为‘0.0.0.0’, if _ ...