解决申请开发者office E5中无法发送手机验证码,reCaptcha加载失败

Posted 铃音yuy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决申请开发者office E5中无法发送手机验证码,reCaptcha加载失败相关的知识,希望对你有一定的参考价值。

关于申请开发者office E5中无法发送手机验证码的解决方案

文章目录

注册过程

这是我的亲身经历,可能对其他情况会不一样

第一次注册到验证手机号时,点击发送代码死活没有反应,打开开发者工具的network一栏发现没有任何请求发出

但是发现了有些资源请求失败,其中就包括reCaptcha,打开百度一搜,大部分帖子说需要开魔法才能加载出来,于是我打开魔法重新加载

又到了验证手机号的阶段,发现仍然无法加载,网络中有这样的信息

加载失败原因

查询得知,为了防止网站被xss攻击,浏览器有非常严格的内容加载策略Content-Security-Policy(csp)

W3对csp的描述
MegaCorp Inc 的开发人员希望保护自己免受跨站点脚本攻击。他们可以通过确保其受信任的 CDN 是脚本可以加载和执行的唯一来源来降低脚本注入的风险。此外,他们希望确保没有插件可以在其页面的上下文中执行。以下政策具有这种效果:
Content-Security-Policy: script-src https://cdn.example.com/scripts/; object-src ‘none’

或者看这个[Content-Security-Policy]
(https://www.jianshu.com/p/528b6be7661c)

总之,csp策略阻止了reCaptcha的加载,我们看看申请E5网页的csp时如何描述的

可以看到有一大堆,但是可能正巧没有reCaptcha的网址,那我们添加上就好了

解决过程

我从百度上找到了一个方法,按他教程设置后

Google 人机验证(reCaptcha)无法显示解决方案(可解决大多数 CSP 问题)

设置成功后仍然无法加载出验证,网页右下角多出了个白条。同时,一段时间后,提示加载验证失败

打开控制台,发现reCaptcha仍然被csp阻止了

那我们就去加一个csp
打开Header Editor,编辑csp那条

输入新的代码

let rt = detail.type;
if (rt === 'script' || rt === 'stylesheet' || rt === 'main_frame' || rt === 'sub_frame') 
  for (let i in val) 
    if (val[i].name.toLowerCase() === 'content-security-policy') 
      let s = val[i].value;
      s = s.replace(/googleapis\\.com/g, '$& https://gapis.geekzu.org');
      //把这里的https://recaptcha.net改成https://www.recaptcha.net
      s = s.replace(/recaptcha\\.google\\.com/g, '$& https://www.recaptcha.net');
      //把这里的https://recaptcha.net改成https://www.recaptcha.net
      s = s.replace(/google\\.com/g, '$& https://www.recaptcha.net');
      s = s.replace(/gstatic\\.com/g, '$& https://*.gstatic.cn');
      val[i].value = s;
    
  

改完后,问题成功解决

解决方案

首先按照Google 人机验证(reCaptcha)无法显示解决方案(可解决大多数 CSP 问题)的解决办法走一遍

这时便无需魔法即可打开reCaptcha

如果你仍然无法加载出来reCaptcha,就修改Header Editor中的csp规则,将如下代码粘贴进去即可

let rt = detail.type;
if (rt === 'script' || rt === 'stylesheet' || rt === 'main_frame' || rt === 'sub_frame') 
  for (let i in val) 
    if (val[i].name.toLowerCase() === 'content-security-policy') 
      let s = val[i].value;
      s = s.replace(/googleapis\\.com/g, '$& https://gapis.geekzu.org');
      //把这里的https://recaptcha.net改成https://www.recaptcha.net
      s = s.replace(/recaptcha\\.google\\.com/g, '$& https://www.recaptcha.net');
      //把这里的https://recaptcha.net改成https://www.recaptcha.net
      s = s.replace(/google\\.com/g, '$& https://www.recaptcha.net');
      s = s.replace(/gstatic\\.com/g, '$& https://*.gstatic.cn');
      val[i].value = s;
    
  

加载成功:

Android后台服务无法解析/访问outlook.office365.com,除非手机负责?

【中文标题】Android后台服务无法解析/访问outlook.office365.com,除非手机负责?【英文标题】:Background service in Android cannot resolve/access outlook.office365.com, unless phone is in charge? 【发布时间】:2018-09-07 19:37:13 【问题描述】:

我一直在努力解决一个奇怪的问题。我有一个简单的代码,它通过 REST API 对 office365 进行身份验证并读取当天的日历条目。 当我的应用程序在前台运行时,代码运行良好。我得到所有日历事件,生成我的通知,一切都很好。 当我将应用程序置于后台时(该应用程序实际上是连接到 Android AlarmManager - AlarmManager.RTC_WAKEUP 并重复运行的后台服务),通知停止出现。当我插入调试电缆查看 Logcat 时,突然之间,即使我的应用程序仍在后台,通知也开始出现。我一拔掉电缆,它们就停止了。当我查看未插入电话时的调试日志时,这就是我所看到的。我使用 Volley 进行网络连接,在此之前我使用的是 okhttp3。以下是两者的日志:

排球:

03-28 16:47:56.822 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:47:56.822 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:03.899 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:03.900 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:08.930 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:08.931 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:13.959 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:13.959 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:18.989 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:18.990 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:24.028 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:24.034 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:29.068 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:29.070 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:34.100 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:34.100 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:39.115 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false
03-28 16:48:39.116 27031-27685/com.microsoft.samples.outlookquickstart I/System.out: (HTTPLog)-Static: isSBSettingEnabled false

okhttp3:

03-28 12:40:08.114 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err: java.net.SocketTimeoutException: connect timed out
03-28 12:40:08.115 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at java.net.PlainSocketImpl.socketConnect(Native Method)
03-28 12:40:08.115 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at     java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:33    4)
03-28 12:40:08.115 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at     java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.    java:196)
03-28 12:40:08.116 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at     java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
03-28 12:40:08.116 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:356)
03-28 12:40:08.116 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at java.net.Socket.connect(Socket.java:586)
03-28 12:40:08.116 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.platform.AndroidPlatform.connectSocket(AndroidPlatform.java:69)
03-28 12:40:08.116 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:238)
03-28 12:40:08.116 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:158)
03-28 12:40:08.116 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:256)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:134)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:113)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
03-28 12:40:08.117 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at     okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at     okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err: at     okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err: at okhttp3.RealCall$AsyncCall.execute(RealCall.java:147)
03-28 12:40:08.118 10329-20079/com.microsoft.samples.outlookquickstart W/System.err: at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
03-28 12:40:08.119 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
03-28 12:40:08.120 10329-20079/com.microsoft.samples.outlookquickstart W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
03-28 12:40:08.120 10329-20079/com.microsoft.samples.outlookquickstart     W/System.err:     at java.lang.Thread.run(Thread.java:762)

我不确定是什么问题以及如何解决它。

关于问题是什么的任何想法?有人遇到过这个吗?我使用的是三星 Galaxy A5 2017。在其他品牌的手机上没有任何不同。

谢谢!

【问题讨论】:

【参考方案1】:

对于可能遇到相同问题的其他人:

经过一番挣扎,我找到了答案。 答案是节电程序已打开,而神秘消息意味着后台网络功能已被节电程序禁用。 一旦我关闭了省电模式,所有通知都开始定期发送,没有任何问题。为了进行测试,我将其关闭,通知因同样的错误而停止。

【讨论】:

以上是关于解决申请开发者office E5中无法发送手机验证码,reCaptcha加载失败的主要内容,如果未能解决你的问题,请参考以下文章

开发技巧--发送手机验证码接口调用

奇淫巧技 | Microsoft 365 开发版e5账户 续订教程

phpmailer 发送Outlook邮件时535 5.7.3 authentication unsuccessful错误的解决办法

phpmailer 发送Outlook邮件时535 5.7.3 authentication unsuccessful错误的解决办法

微信新手机登录扫描验证失败怎么办

Android后台服务无法解析/访问outlook.office365.com,除非手机负责?