android 浏览器跳转app_移动端APP内嵌H5怎么防外链打开?

移动端APP内嵌的H5页面可能被截取链接并在浏览器中打开,带来安全风险。通过尝试修改User-Agent字段并未奏效,作者转向寻找其他解决方案。在安卓和iOS原生系统中找到了相应的方法,通过与移动端约定特定标识,可以有效防止外链在浏览器中打开。
摘要由CSDN通过智能技术生成

移动端APP内嵌H5怎么防外链打开?

APP内嵌页面可被抓包获取链接然后在浏览器打开,这样安全性就会有问题了。涉及到用户的个人信息泄露、被盗取等一系列的问题。

起初后端说让我在接口的RequestHeaders里的User-Agent里面追加字段,百度一下User-Agent

89187a6e93f61d967bdc23c9c7813d47.png

原来是发现浏览器标识,怎么哪里感觉不对劲,尝试着修改User-Agent,加了半天也没加上。发现它并不是很好玩,兼容性也不是很好,还不怎么听话。浏览器的User Agent字段令人迷惑,例如:某一版本的Chrome访问网络时,User Agent字段如下:

Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.29 Safari/537.36

  • Mozilla/5.0:网景公司浏览器的标识,由于互联网初期浏览器市场主要被网景公司占领,很多服务器被设置成仅响应含有标志为Mozilla的浏览器的请求,因此,新款的浏览器为了打入市场,不得不加上这个字段。
  • Windows NT 6.3 : Windows 8.1的标识符
  • WOW64:32位的Windows系统运行在64位的处理器上
  • AppleWebKit/537.36:苹果公司开发的呈现引擎
  • KHTML:是Linux平台中Konqueror浏览器的呈现引擎KHTML
  • Geckeo:呈现引擎
  • like Gecko:表示其行为与Gecko浏览器引擎类似

尝试了几种方法发现没有一点卵用犹如石沉大海,于是我决定另寻出路,既然浏览器有标识,那手机肯定也有啊。

山重水复疑无路,柳暗花明又一村。

问了下安卓和IOS,毕竟他们是原生,果然他们原生提供有这个方法!NICE!!!

a47f2b19ab8348c48e62f783519a82a0.gif

这就好办了,直接上才艺!!!和移动端约定下标识就OK了

    // 通过ua标识判断
    var userAgent_app = navigator.userAgent.toLowerCase();//获取UA信息
    var isApp;
    // console.log(userAgent_app)
    if (userAgent_app.indexOf("faceying") != -1) {//判断ua中是否含有和app端约定好的标识
        isApp = true //客户端调用
    }else{
        isApp = false //客户端调用
    }
    if (isApp) {
        $('#app').css('display', 'block');
        // $('#noapp').css('display','none');
    } else {
        // console.log(userAgent_app)
        $('#app').css('display', 'none');
        // $('#noapp').css('display','block');
        let nav = getNav();
        if (nav == 'IOS') {
            // 跳转到app store
            location.href = 'https://itunes.apple.com/cn/app/id1399525115?mt=8';
        } else if (nav == 'Android') {
            // 跳转到应用宝
            location.href = 'https://a.app.qq.com/o/simple.jsp?pkgname=com.kaixun.faceshadow';
        } else if (nav == 'mac' || 'Windows') {
            location.href = 'https://a.app.qq.com/o/simple.jsp?pkgname=com.kaixun.faceshadow';
        }
    }
        // 判断在哪打开安卓还是ios
    function getNav() {
        let u = navigator.userAgent;
            // app = navigator.appVersion;
        // console.log(navigator.userAgent)
        let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 //g
        let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) //ios终端
        let mac = u.indexOf('Mac')
        let win = u.indexOf('Windows')
        if (isAndroid) {
            return 'Android'
        }
        if (isIOS) {
            return 'IOS'
        }
        if (mac > -1) {
            return 'mac'
        }
        if (win > -1) {
            return 'Windows'
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值