https页面上的书签

时间:2013-01-16 20:58:15

标签: javascript https bookmarklet

我正在尝试制作一个在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);}());

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:4)

在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. 玩得开心,小心点。这是龙!

答案 2 :(得分:3)

  

小书签不在https页面上运行

为什么不呢?

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

答案 3 :(得分:1)

我创造了一种解决方法"修复"对于使用Greasemonkey userscript的此问题。您现在可以在所有CSP和https://网站上安装bookmarklet,并将您的书签放在一个漂亮,易于编辑的库文件中,而不是单独压缩成书签。