m0_71234511 2024-11-30 14:58 采纳率: 0%
浏览 30
问题最晚将于12月08日00:00点结题

Android Studio 的 webview 与访问网络存在的限制

Android Studio 的 webview 能否实现基于 chromium 开发的浏览器的网络访问功能?

解释说明:
(所有的测试均使用同一家用wifi):
我注意到除去油管一类的限制网站(以下简称A类),还存在另一类限制网站(以下简称B类)。

  1. 使用iphone使用非国产浏览器(例如百度)访问B类网站,可以访问;
  2. 使用iphone使用国产浏览器访问B类网站,限制访问;
  3. 使用安卓手机(小米)使用大多浏览器(例如小米自带浏览器、轻量级chromium浏览器、国产浏览器)访问B类网站,限制访问;
  4. 使用安卓手机使用基于chromium开发的浏览器(brave、edge、chrome)的新版本访问B类网站,可以访问;
  5. 使用安卓手机使用基于chromium开发的浏览器(brave、edge、chrome)的旧版本(chrome.dev_115.0.5748.0 之前)访问B类网站,限制访问;
  6. 电脑端使用chrome浏览器访问B类网站,可以访问;
  7. 电脑端开热点,安卓手机链接热点访问B类网站,限制访问;
  8. 抓包过程中使用过Fiddler,连接代理后不知道为什么,使用小米自带浏览器访问B类网站,可以访问(这个比较事实比较弱,我忘记当时的配置了)。

测试其他必要条件有:

  1. 使用安卓机的命令行测试,ping B类网站,能ping通;
  2. 如果安卓手机IP使用DHCP,上面的第4种方式,也会限制访问,只有使用静态IP,DNS使用114(别的没测试)可以访问。

推测B类网站的限制:

  1. 国产浏览器有黑名单,当访问B类网站的时候,会跟浏览器服务器交互相关信息,被浏览器掐断链接;
  2. DNS污染,DHCP的DNS对B类网站进行了限制。

参考:
当使用旧版本chrome浏览器(114.0.5735.227 【114最后一个版本】)访问B类网站,提示连接是不安全的;
当使用较新版本chrome浏览器(dev_115.0.5748.0 【115第一个开发版本】)访问B类网站,提示该链接使用TLS1.3;
当使用最新chrome浏览器(131任何版本)访问B类网站,提示该链接使用QUIC;
当使用最新chrome浏览器(131任何版本)访问日常网站比如百度,提示该链接使用TLS1.2;
B类测试网站为 https://toptoon03.xyz/

提问目的(需要解答):

  1. 简述以上多种方式访问网站的路径有什么不同(我知道基本状态是一个节点到一个节点,但是每种方式肯定对应的节点不一样),请用简单大白话;
  2. 基于chromium的浏览器(brave、edge、chrome)使用了是么功能、规避了哪个节点的黑名单,导致可以访问B类网站;
  3. Android Studio 的 webview 能否实现这个功能。

ps: 我喜欢有目的的研究,然后遇到问题解决问题,并没有系统学习过编程,但是做出过能用的APP,我问过AI(豆包、ChatGPT),但是没解决这个问题,各种测试搞得我晕头转向,没搞明白到底哪里有限制,要说DNS污染,那我改DNS还没解决、要说安卓机有安全策略,但是在某种情况下又能访问、总而言之,研究了很长时间、没搞明白限制都出在哪里。
特来提问,望赐教!

  • 写回答

23条回答 默认 最新

  • M_try的小尾巴 2024-11-30 15:29
    关注

    该回答引用自Deepseek,由本人整理审核 若有帮助,望采纳。

    问题分析

    你遇到的问题主要围绕Android Studio的WebView与网络访问限制,特别是针对某些特定网站(B类网站)的访问问题。你已经进行了多种测试,包括使用不同设备、浏览器版本和网络配置,但仍然无法完全理解这些限制的来源。

    关键点总结

    1. A类网站:通常是像YouTube这样的大型网站,有明确的访问限制。
    2. B类网站:特定类型的网站,访问时存在限制,但具体原因不明。
    3. 测试环境:所有测试均在同一家庭WiFi下进行。
    4. 测试结果
      • iPhone使用非国产浏览器可以访问B类网站。
      • iPhone使用国产浏览器无法访问B类网站。
      • 安卓手机使用大多数浏览器(包括国产浏览器)无法访问B类网站。
      • 安卓手机使用基于Chromium开发的浏览器(如Brave、Edge、Chrome)的新版本可以访问B类网站。
      • 安卓手机使用基于Chromium开发的浏览器的旧版本无法访问B类网站。
      • 电脑端使用Chrome浏览器可以访问B类网站。
      • 电脑端开热点,安卓手机连接热点后无法访问B类网站。
      • 使用Fiddler抓包并连接代理后,小米自带浏览器可以访问B类网站(但配置细节不详)。
      • 安卓手机使用DHCP分配的IP地址时无法访问B类网站,使用静态IP和特定DNS(如114)时可以访问。

    推测的限制原因

    1. 国产浏览器黑名单:国产浏览器可能有一个黑名单,当访问B类网站时,会与浏览器服务器交互相关信息,导致连接被掐断。
    2. DNS污染:DHCP分配的DNS可能对B类网站进行了限制。

    提问目的

    1. 访问路径的不同:简述以上多种方式访问网站的路径有什么不同。
    2. Chromium浏览器的功能:基于Chromium的浏览器(如Brave、Edge、Chrome)使用了什么功能规避了黑名单,导致可以访问B类网站。
    3. Android Studio的WebView:Android Studio的WebView能否实现这个功能。

    解答

    1. 访问路径的不同

    • iPhone vs 安卓手机:iPhone上的非国产浏览器可能没有受到DNS污染或黑名单的影响,而安卓手机上的大多数浏览器可能受到了这些限制。
    • 浏览器版本:基于Chromium的浏览器的新版本可能使用了更先进的网络协议(如QUIC、TLS 1.3),这些协议可能绕过了某些限制。
    • 网络配置:使用静态IP和特定DNS(如114)可能绕过了DHCP分配的DNS污染。

    2. Chromium浏览器的功能

    • QUIC协议:新版本的Chromium浏览器可能使用了QUIC协议,这是一种基于UDP的传输层协议,相比传统的TCP协议,QUIC在某些网络环境下可能更不容易受到限制。
    • TLS 1.3:TLS 1.3是一种更安全的加密协议,可能绕过了某些旧版本的限制。
    • 黑名单规避:新版本的Chromium浏览器可能对黑名单进行了优化,或者使用了更先进的代理技术来规避黑名单。

    3. Android Studio的WebView

    • WebView的功能:Android Studio的WebView是基于Chromium的,因此理论上它应该能够实现与Chromium浏览器相同的功能。
    • 配置和优化:你需要确保WebView的配置与Chromium浏览器的新版本一致,包括启用QUIC、TLS 1.3等协议。
    • 测试和调试:建议在WebView中进行详细的测试和调试,确保没有遗漏任何配置或优化。

    总结

    Android Studio的WebView理论上可以实现与基于Chromium的浏览器相同的功能,但需要确保配置和优化到位。你可以通过启用QUIC、TLS 1.3等协议,并进行详细的测试和调试,来验证是否能够访问B类网站。

    评论

报告相同问题?

问题事件

  • 修改了问题 11月30日
  • 创建了问题 11月30日

悬赏问题

  • ¥15 在虚拟机中配置flume,无法将slave1节点的文件采集到master节点中
  • ¥15 husky+kinova jaco2 仿真
  • ¥15 MATLAB数据处理
  • ¥15 zigbee终端设备入网失败
  • ¥15 金融监管系统怎么对7+4机构进行监管的
  • ¥15 硬件IIC从模式的数据发送,中断数据的接收,不能用HAL库(按照时序图)
  • ¥20 QAxWidget上显示一个word文档后,如何直接在该QAxWidget上修改和保存word文档
  • ¥15 Simulink仿真报错,请问如何解决
  • ¥20 宝塔面板无法添加Node项目,一直处于正在添加脚本页面
  • ¥50 Dkeil5 CT107D单片机的程序编写