V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yazoox
V2EX  ›  前端开发

safari 有没有办法 暂时/临时 allow insure content?

  •  
  •   yazoox · 2022-07-27 11:21:03 +08:00 · 1825 次点击
    这是一个创建于 869 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们自己做的网站,有一个功能,就是点击一个页面上的一个按钮,能够打开本地的一个应用。(其实,zoom 也有类似的,点击页面上一个按钮,打开本地的 zoom app )

    现在在 chrome & edge 都没有问题,但是 safari 有问题,

    [blocked] The page at https://<our-web-site> was not allowed to run insecure content from ws://127.0.0.1:12345/.
    

    我们本地应用,是监听 12345 的端口,能够和 website 通讯。

    google 了一下,其实和这个问题有点像,https://stackoverflow.com/questions/39076180/https-page-was-not-allowed-to-run-insecure-content-from-safari-extension-uri

    但是很遗憾,最新版的 safari 没有找到哪里有类似的设置 unblock 。

    我试着打开 safari 的 develop 菜单,然后把所有的这些都勾选上了。还是不能工作。 safari setting2.png

    所以,来请教一下,是我哪里理解错了,或者有没有什么 workaround ,方法等等。谢谢!

    macOS: 12.3.1 safari: Version 15.4 (17613.1.17.1.13)

    GeekJason
        1
    GeekJason  
       2022-07-28 10:40:44 +08:00
    https 页面内不能使用 ws 协议,改用 wss 即可
    yazoox
        2
    yazoox  
    OP
       2022-07-28 11:01:22 +08:00
    @GeekJason 那为什么 chrome & edge 没有问题?
    GeekJason
        3
    GeekJason  
       2022-07-28 14:09:09 +08:00
    Safari -> Develop -> Experimental Features -> NSURLSession WebSocket

    取消勾选
    yazoox
        4
    yazoox  
    OP
       2022-08-03 16:23:01 +08:00
    @GeekJason 兄弟,试过了,取消这个“勾选”,还是不能工作。报同样的错误呢...
    neiltroyer849
        5
    neiltroyer849  
       2022-08-04 01:58:54 +08:00 via iPhone
    这个是不是苹果要给 entitlement 或者苹果添加例外才可以? op 可以搜一下 teams 在 Safari 上无法唤醒本地客户端的 bug ,感觉是一样的问题但最后是被苹果自己更新 Safari 版本修好的
    neiltroyer849
        6
    neiltroyer849  
       2022-08-04 01:59:54 +08:00 via iPhone
    或者试着更新一下 Safari 版本 or 用 TP 版看看
    yazoox
        7
    yazoox  
    OP
       2022-08-04 09:07:52 +08:00
    @neiltroyer849 Version 15.4 (17613.1.17.1.13) safari ,这个应该最新了吧
    另, 什么是 TP 版本?

    确实找到一个帖子,不过,teams 的问题,和我碰到的不一样。解决方法也不一样。我也试过了,不工作尼......

    thx a lot.
    neiltroyer849
        9
    neiltroyer849  
       2022-08-04 21:06:06 +08:00 via iPhone
    @neiltroyer849 就是技术预览版( Safari technology preview ),类似于 chrome 的 beta/dev 通道修 bug 要快点。但我后来又仔细查了下,https 引 localhost 似乎是 webkit 的一个陈年老 bug/政策。比如这里的讨论: https://github.com/btcpayserver/BTCPayServer.Vault/issues/9 。WebKit Bugzilla 上已经有 5 年的时间在争论苹果的这个 bug ,到最后变成了 WebKit/Safari 的一个政策,就是他们把 https 引 http local host 当成是 mixed content 予以禁止,但是却允许 http 引用 http localhost 。( https://bugs.webkit.org/show_bug.cgi?id=171934 )这其实是不符合 The Secure Context spec 的,不管是事后洗地还是什么,但 Safari 上就这样最终决定了。也许这只是千千万万 WebKit 和苹果 Safari 的烂到天坑的臭虫们中被淹没的一个吧。
    neiltroyer849
        10
    neiltroyer849  
       2022-08-04 21:06:55 +08:00 via iPhone
    @yazoox 好像上一楼回复错了回复给了我自己,不好意思,这里再 @下
    yazoox
        11
    yazoox  
    OP
       2022-08-05 16:13:48 +08:00
    @neiltroyer849 从这个文档里看,https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content
    好像苹果的 safari ,就是不支持 "Safari does not allow any mixed content."
    好坑啊......
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1224 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:35 · PVG 01:35 · LAX 09:35 · JFK 12:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.