javascript - 使不安全的图像源成为安全的客户端

标签 javascript jquery ssl

我让我的 VanillaForums 论坛上的用户选择是否使用 https 协议(protocol),我想测试我是否可以使用 jQuery 在客户端更改图像源。

我希望此代码将图像源链接中的协议(protocol)更改为 // 而不是 http:// 并在图像加载之前加载,所以我使用.ready():

$(document).ready(function () {
    if (window.location.protocol == "https:") {     
        var $imgs = $("img");
        $imgs.each(function () {
            var img_src = $(this).prop("src");
            if (img_src.indexOf("http://") < 0) return;
            var new_img_src = img_src.replace("http:", "");
            $(this).prop("src", new_img_src);
        });
    }
});

虽然它确实可以更改图像源,但 URL 栏仍然显示:

enter image description here

并且控制台发出警告,指出 http://someimageurl... 不安全。

我是否需要将代码移至页面顶部,否则不会有什么不同吗?

最佳答案

需要在服务器端完成,浏览器才不会抛出不安全的连接警告。负责代码的文件是/library/core/functions.render.php,你可以看到here .

$PhotoURL 是需要更改的变量。使用以下确保所有图像都通过 https: 协议(protocol)加载:str_replace('http://', 'https://', $PhotoURL).

我通常不介意小型软件的全局范围,但在像 Vanilla 这样大的软件中,这就像大海捞针。

我找不到特别针对 Vanilla 的任何其他修复程序,所以我希望这对人们有所帮助。

关于javascript - 使不安全的图像源成为安全的客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723406/

相关文章:

javascript - 使用 jquery 追加 PHP echo

jquery - 带有 jquery 动画的 Twitter bootstrap 表

html - 使用 ssl 将 html 放入站点但无法使用 ssl 链接到它?

iOS 和 Erlang - 使用自签名证书的 SSL 握手失败

javascript - 如何使用 cordova-waze-navigator 插件

javascript - 文本字段附近的按钮不显示在选项卡面板内的表单中

javascript - Jquery 数据表初始化时的一次回调

javascript - 使用Each Loop时获取每个父节点的ID

javascript - 从二维数组中删除重复项

Java SSL 握手失败有时会失败,具体取决于 VM 参数/属性