在https页面上使用书签脚本

6

我正在尝试制作一个书签小程序,用于在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浏览器,您是否在其他浏览器中看到这种行为?哪些浏览器可以运行书签小工具,哪些不能? - apsillers
你的网站支持https吗? - epascarello
显然,Chrome会阻止它,而Firefox则不会。不幸的是,我没有固定的IP地址,因此无法使用SSL证书。这只是一个小项目。如果有用户感兴趣,也许我可以改变这一点或找到另一种轻松存储YouTube链接的方法。 - maugch
你可以免费从StartSSL获取SSL证书。 - Phil
有没有办法告诉你的浏览器,你想(暂时)允许混合内容? - caponica
4个回答

6
Google Chrome(可能还有其他浏览器)会阻止从HTTPS文档访问HTTP资源。这是为了防止“混合内容”攻击,其中不安全的HTTP脚本可能在网络传输过程中被攻击者拦截并更改以执行任何恶意活动(例如,泄漏cookie或敏感页面信息给第三方)。这种违规行为将撤销由HTTPS授予的任何保护。
Chrome曾经提供突出显示的警告,指出不安全的资源已被阻止,但现在不再提供此功能,所有不安全的加载都将默默失败。目前您唯一可用的解决方案是在提供脚本时自己使用HTTPS。

IE 10也会出现不安全内容警告,并给您让内容运行的选项,但我认为需要刷新页面。 - LetMyPeopleCode

4
在Firefox中,如果您想要运行一个引用http的书签脚本,并且该脚本在https页面上被引用,解决方法就是临时禁用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 地址来做这件事。 - maugch
测试一下是否可以切换到HTTPS并获取证书,除此之外没有太多需要做的了。 - Halcyon

1
我已经使用 Greasemonkey userscript 创建了一个解决此问题的临时方法 “fix”。现在你可以在所有 CSP 和 https:// 网站上使用书签,还可以将书签保存在一个漂亮且易于编辑的库文件中,而不是逐个压缩成书签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接