xxxily / h5player

This software supports all audio and video websites, such as TikTok, YouTube, Bilibili, TED, Instagram, Twitter, etc. Features include: variable playback speed, screen capture, video download, custom settings, and extensions, etc., providing you with a pleasant online audio and video playback experience.
https://h5player.anzz.top
GNU General Public License v3.0
3.09k stars 259 forks source link

[BUG]h5player导致Cloudflare的Captcha验证过不去 #648

Open CLAY-CMD opened 6 months ago

CLAY-CMD commented 6 months ago

开了h5player脚本之后,会导致许多网页Cloudflare的Captcha验证过不去。只有关闭了脚本才能恢复正常

ShiJie137 commented 6 months ago

+1,无限验证

dot-super commented 6 months ago

目前发现是hook相关代码造成的,把那段代码删了就行

leic4u commented 6 months ago

+1 把所有插件和所有脚本都排查了一遍,最后发现是这个脚本的问题

xiaotianxt commented 6 months ago

+1

hsp1020 commented 6 months ago

+1,无限验证

1106458351 commented 6 months ago

目前发现是hook相关代码造成的,把那段代码删了就行

能细说一下解决办法吗,不懂得如何操作相关代码

hijos commented 6 months ago

+1

dot-super commented 6 months ago

目前发现是hook相关代码造成的,把那段代码删了就行

能细说一下解决办法吗,不懂得如何操作相关代码

4611到5120行代码删掉或者注释掉

xxxily commented 6 months ago

最新版已通过黑名单的方式解决了Cloudflare没法通过Captcha验证的问题,可以更新试试。

最近比较少关注github上的issues,如果还有问题建议微信群里@下我

bombomtnt commented 4 months ago

+1 我说怎么莫名其妙的感觉验证码不对劲!

MuXia-0326 commented 4 months ago

+1

Banboo-on-Github commented 4 months ago

又出现这个问题了...@xxxily

931556924 commented 4 months ago

最新版已通过黑名单的方式解决了Cloudflare没法通过Captcha验证的问题,可以更新试试。

最近比较少关注github上的issues,如果还有问题建议微信群里@下我

还是有这个问题

yvvw commented 4 months ago

+1 版本4.2.7仍然有这个问题

Kit-p commented 4 months ago

@xxxily 這次的問題是由 hackAttachShadow() 這個函數引起的,Cloudflare 似乎會檢查 shadowRoot !== null。 在啓用了 Cloudflare captcha 的頁面上不要強制改變 mode 就可以了,最簡單的偵測方式是 window.turnstile

實測 4.2.7 版本修改後成功通過 https://dash.cloudflare.com/login 上的 captcha。

function hackAttachShadow () {
  if (window._hasHackAttachShadow_) return
  try {
    window._shadowDomList_ = [];
    window.Element.prototype._attachShadow = window.Element.prototype.attachShadow;
    window.Element.prototype.attachShadow = function () {
      const arg = arguments;
      if (arg[0] && arg[0].mode && !window.unsafeWindow.turnstile) { // <-- 這裏加上 ` && !window.unsafeWindow.turnstile`
        // 强制使用 open mode
        arg[0].mode = 'open';
      }
  ...
}
letterk commented 4 months ago

这是我第二次遇到兼容性问题了, 之前有一次也是脚本的问题, 我直接把全网匹配给关了 这个脚本还是用白名单模式为好, 很多没有视频的网站根本不需要多注入一个脚本

Cope9560 commented 4 months ago

@xxxily 這次的問題是由 hackAttachShadow() 這個函數引起的,Cloudflare 似乎會檢查 shadowRoot !== null。 在啓用了 Cloudflare captcha 的頁面上不要強制改變 mode 就可以了,最簡單的偵測方式是 window.turnstile

實測 4.2.7 版本修改後成功通過 https://dash.cloudflare.com/login 上的 captcha。

function hackAttachShadow () {
  if (window._hasHackAttachShadow_) return
  try {
    window._shadowDomList_ = [];
    window.Element.prototype._attachShadow = window.Element.prototype.attachShadow;
    window.Element.prototype.attachShadow = function () {
      const arg = arguments;
      if (arg[0] && arg[0].mode && !window.unsafeWindow.turnstile) { // <-- 這裏加上 ` && !window.unsafeWindow.turnstile`
        // 强制使用 open mode
        arg[0].mode = 'open';
      }
  ...
}

试试,我也是最近一直重复验证Cloudflare

zpoison commented 3 months ago

我不明白如何進行修改,我們可以更新嗎?這會很棒 I don't understand how to make the modifications, can we have an update for this please? It would be great

BoYanZh commented 3 months ago

我不明白如何进行修改,我们可以更新吗?这会很棒 I don't understand how to make the modifications, can we have an update for this please? It would be great

@zpoison As @Kit-p said, you need to search for the function hackAttachShadow in the code and replace the line if (arg[0] && arg[0].mode) { by if (arg[0] && arg[0].mode && !window.unsafeWindow.turnstile) { and save. Then the modified version will work. In my situation, that line is line 136.

xxxily commented 3 months ago

最新版已修复该问题,更新使用下,如有问题欢迎再次反馈。

mikayao commented 2 months ago

还是没解决,最近又频繁重复验证了