【问题标题】:bookmarklet on https pagehttps 页面上的书签
【发布时间】:2012-12-31 07:42:14
【问题描述】:

我正在尝试制作一个可在 youtube 和其他视频网站上使用的书签,以便轻松地从视频中获取信息并将其存储在其他地方。

从今天开始,显然我不能再这样做了,因为 youtube 强制自己使用 https 连接,并且从我在 chrome 的控制台窗口上看到的内容来看,书签不会在 https 页面上运行。有解决办法吗?

这里是修改后的代码:

javascript:(function(){var jsCode=document.createElement('script');jsCode.setAttribute('src','http://[mysite]/b/enter.php?i=userid&r='+Math.random());document.body.appendChild(jsCode);}());

【问题讨论】:

  • 您是否在 Google Chrome 以外的浏览器中看到了这种行为?哪些浏览器运行小书签,哪些不运行?
  • 你们网站支持https吗??
  • 显然 Chrome 会阻止它,而 Firefox 不会。不幸的是,我没有固定的 ip,所以我不能使用 SSL 证书。这只是一个宠物项目。如果我有用户感兴趣,也许我可以改变它或找到另一种方法来轻松存储 youtube 链接。
  • 您可以从 StartSSL 免费获得 SSL 证书。
  • 有什么方法可以告诉您的浏览器您希望(暂时)允许混合内容?

标签: javascript https bookmarklet


【解决方案1】:

Google Chrome(可能还有其他浏览器?)阻止从 HTTPS 文档访问 HTTP 资源。这是为了防止“mixed content”攻击,其中不安全的 HTTP 脚本可能是 intercepted by an attacker 在网络上传输并被更改以执行任何类型的恶意活动(例如,将 cookie 或敏感页面信息泄露给第三方)。此类违规行为将撤消 HTTPS 授予的任何保护。

Chrome 曾经提供一个突出的警告,指出不安全的资源已被阻止,但现在它不再这样做了,所有不安全的加载都会静默失败。目前唯一可用的解决方案是在提供脚本时自己使用 HTTPS。

【讨论】:

  • IE 10 也会给出不安全的内容警告,并让您选择让内容运行,但在我看来,在给出选项后需要刷新。
【解决方案2】:

在 Firefox 中,如果您想在 https 页面上运行引用 http 的小书签,解决此问题的方法是暂时禁用 security.mixed_content.block_active_content。有两种方法可以做到这一点。

  1. 在新选项卡中转到about:config,搜索security.mixed_content.block_active_content,然后将值切换为false。运行您的小书签,然后将其切换回 true(因为您可能希望它大部分时间都处于打开状态)。

  2. 使用插件/扩展来切换块。快速搜索出现了Toggle Mixed Active Content,快速测试似乎效果很好。可能还有其他人。

玩得开心,小心点。这里是龙!

【讨论】:

    【解决方案3】:

    书签不在 https 页面上运行

    为什么不呢?

    尝试自己更改为 HTTPS 域。当您在 HTTPS 域上时,通常会阻止 HTTP 内容。

    【讨论】:

    • 我没有证书也没有固定的 ip 来做这件事。
    • 如果你切换到 HTTPS 并获得证书,测试它是否有效,没有什么其他的了。
    【解决方案4】:

    我已经使用Greasemonkey userscript 为这个问题创建了一个解决方法“修复”。您现在可以在所有 CSP 和 https:// 网站上拥有书签,并且将书签放在一个漂亮、易于编辑的库文件中,而不是单独压缩到书签中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-09
      • 2017-02-19
      • 1970-01-01
      • 2011-12-09
      • 2018-12-04
      相关资源
      最近更新 更多