You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android WebView加载部分URL出现net::ERR_BLOCKED_BY_ORB错误,已尝试方案无效

解决Android WebView中net::ERR_BLOCKED_BY_ORB错误(仅部分URL触发)

net::ERR_BLOCKED_BY_ORB是Chrome内核的Origin Restrictions Bypass(ORB)安全机制触发的拦截,仅部分URL出现说明这些页面的资源加载或脚本行为命中了ORB的风险检测规则。以下是针对性的排查和解决方法:

1. 定位具体被拦截的请求

用Chrome远程调试工具找出触发ORB的具体资源或操作:

  • 代码中开启WebView调试:webView.setWebContentsDebuggingEnabled(true);
  • 打开Chrome浏览器访问chrome://inspect,找到对应设备的WebView实例,进入DevTools的Network面板,查看标记为ERR_BLOCKED_BY_ORB的请求详情,明确是资源加载还是脚本行为导致的拦截。

2. 调整WebView安全设置(谨慎操作)

如果是跨源资源加载触发的拦截,可针对性调整安全配置:

  • 若页面存在HTTPS环境加载HTTP资源的情况,放宽混合内容限制(仅在确认资源安全时使用):
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE);
    }
    
  • 检查自定义的WebViewClient是否存在过度拦截的逻辑,比如错误阻断了合法请求。

3. 排查页面脚本行为

部分页面的非标准脚本操作会触发ORB防御:

  • 临时禁用JavaScript测试:webView.getSettings().setJavaScriptEnabled(false);,若错误消失,说明是脚本问题。此时可联系页面开发者修复,或通过evaluateJavascript注入过滤脚本,干预风险行为。
  • 常见风险行为包括:用iframe加载受限源内容、document.write注入跨源敏感数据、调用被ORB标记的DOM API。

4. 升级WebView内核版本

旧版WebView可能存在ORB规则误判:

  • 引导用户在应用商店更新「Android System WebView」到最新稳定版;
  • 若使用自定义内核(如腾讯X5、Crosswalk),同步升级内核版本。

5. 特定URL的临时处理(不推荐)

仅在确认目标URL绝对安全时,可尝试捕获错误并重试:

@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
    // 匹配ERR_BLOCKED_BY_ORB的错误码-102
    if (error.getErrorCode() == -102 && request.getUrl().toString().contains("目标URL的特征字符串")) {
        Map<String, String> headers = new HashMap<>();
        headers.put("Referer", request.getUrl().getOrigin().toString());
        view.loadUrl(request.getUrl().toString(), headers);
    } else {
        super.onReceivedError(view, request, error);
    }
}

注意:ORB是核心安全机制,优先建议从页面端修复问题,避免过度放宽WebView安全设置,防止引入安全漏洞。

内容的提问来源于stack exchange,提问作者Shivam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 00:52:34