在网站 HTTPS 下,百度、阿里妈妈的广告嵌入未显示的分析与解决

1、在网站升级至 HTTPS 后,百度、阿里妈妈的广告嵌入未显示,如图1

图1

2、百度的广告嵌入代码,其中存在 HTTP 的网址

<!-- 广告位:200*280 创建于 2019/12/06 -->
<script>
(function() {
    var s = "_" + Math.random().toString(36).slice(2);
    document.write('<div id="' + s + '"></div>');
    (window.slotbydup=window.slotbydup || []).push({
        id: '6758467',
        container: s,
        size: '200,280',
        display: 'inlay-fix'
    });
})();
</script>

<!-- 请置于所有广告位代码之前 -->
<script src="http://dup.baidustatic.com/js/ds.js">

3、阿里妈妈的广告嵌入代码,其中存在 HTTP 的网址

<script type="text/javascript">
        document.write('<a style="display:none" id="tanx-a-mm_123311466_23836172_109841700208"></a>');
        tanx_s = document.createElement("script");
        tanx_s.type = "text/javascript";
        tanx_s.charset = "gbk";
        tanx_s.id = "tanx-s-mm_123311466_23836172_109841700208";
        tanx_s.async = true;
        tanx_s.src = "http://p.tanx.com/ex?i=mm_123311466_23836172_109841700208";
        tanx_h = document.getElementsByTagName("head")[0];
        if(tanx_h)tanx_h.insertBefore(tanx_s,tanx_h.firstChild);
</script>

4、基于浏览器提示:点击 加载不安全的脚本 后,百度广告已显示,但是阿里妈妈仍示显示,且浏览器提示不安全,如图2

图2

5、庆幸的是百度与阿里妈妈皆已支持 HTTPS 协议,调整嵌入广告代码,将 http:// 替换为 https:// 后,再次打开网页,皆已经成功显示,且未再提示不安全,如图3

图3

<!-- 请置于所有广告位代码之前 -->
<script src="https://dup.baidustatic.com/js/ds.js">

<script type="text/javascript">
        document.write('<a style="display:none" id="tanx-a-mm_123311466_23836172_109841700208"></a>');
        tanx_s = document.createElement("script");
        tanx_s.type = "text/javascript";
        tanx_s.charset = "gbk";
        tanx_s.id = "tanx-s-mm_123311466_23836172_109841700208";
        tanx_s.async = true;
        tanx_s.src = "https://p.tanx.com/ex?i=mm_123311466_23836172_109841700208";
        tanx_h = document.getElementsByTagName("head")[0];
        if(tanx_h)tanx_h.insertBefore(tanx_s,tanx_h.firstChild);
</script>
永夜