使不安全的图像源安全客户端

时间:2014-12-31 15:58:46

标签: javascript jquery ssl

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

我希望此代码将图片源链接中的协议更改为//而不是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...不安全。

我是否需要将代码移到页面顶部,否则会产生不同的影响?

1 个答案:

答案 0 :(得分:0)

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

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

我通常不介意小型软件的全球范围,但在像Vanilla这样大的东西上,就像在大海捞针一样。

我无法找到任何其他针对香草的修复方案,所以我希望这有助于人们。