你的位置:首页 > Java教程

[Java教程]关于解决微信图文防盗链方案

推荐方法一

<meta name="referrer" content="never">

就这么一句话,把它放到<head>头里就可以了。记得要把其他影响图片的东西给删了,不然会冲突。

========================================================================================

我自己本人的,因为我希望点击一个链接时跳转到微信图文,然后在该页面点击返回图标从微信图文返回之前的APP页面,我在自己网站的HTML里的div中嵌套一个<iframe>标签,src链接到微信公众号里的图文,跑出来后只能显示文字,不能加载显示图片,百度了说是微信的防盗链,有说在<head>标签里加<meta name="referrer" content="never">但好像也只能在手机的访问显示,也有把图片的data-src改成src(在浏览器右键图片检查时可以看到这些属性,更改时是可以显示的,但我不知道怎么保,其他不太清楚,反正我不知道什么鬼),但我页面只是一个div里嵌套iframe标签链接到微信公众号的图文,没其他的,找了一天,为此还白花了15块买个文档来也没用,最后终于找到了一个只用js就可以破解微信图文防盗链的,感谢来自博客园的“前端小透明”

地址 align="left">如果你只是通过点击一个链接跳转到微信图文的话,直接一个标签链接到你的目的地址就行,但是这样你不能返回之前的页面,所以我在div里写放了个返回图片,再在div里嵌套一个<iframe>标签,链接到微信图文,这样在移动端跑出来后就只能看到文字,图片都没有加载显示出来,这和http的referrer有关系,具体原理请百度微信防盗链原理了解,下面就是我的<body>代码:

<body>

    <div >

        <!--S-顶部栏-->

        <div >

            <div >

                <a href="#">

                    <img src="~/Images/icon/left30X30.png" width="15" height="15" />

                </a>  

            </div>

            <div >资讯中心</div>

        </div>

        <!--E-顶部栏-->

        <!--S-iframe资讯栏-->

        <div >

             <!—如果加入了下面的js,则此处的src链接地址可以不写-->

            <iframe id="myframe" src="http://mp.weixin.qq.com/s/d1NIaupcZT_yeZnz4QRS1A">

 

            </iframe>

        </div>

        <!--E-iframe资讯栏-->

    </div>

</body>

加入js

<script>

        //破解iframe微信推文(图片)防盗链

        $.ajaxPrefilter(function (options) {

            if (options.crossDomain && jQuery.support.cors) {

                var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');

                options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;

            }

        });

 

        var share_link = "http://mp.weixin.qq.com/s/d1NIaupcZT_yeZnz4QRS1A"; //微信文章地址

        $.get(

            share_link,

            function (response) {

                //console.log("> ", response);

                var html = response;

                html = html.replace(/data-src/g, "src");

                var html_src = 'data:text/html;charset=utf-8,' + html;

                $("iframe").attr("src", html_src);

            });

    </script>

==========================================================================================

百度其他方法一:

例子:

<div id="ddb-branch-introduction">
{php echo htmlspecialchars_decode($hd['description'])} //微信内容

</div>

引入下面js

<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>

<script>

                         

                          $("#ddb-branch-introduction img").each(function () {

            var img = $(this);

            if (img.parent().attr("id") != "ad1") {

                var img_src = img.attr("src");

                var frameid = 'frameimg' + Math.random();

                window.img = '<img id="img" src=\'' + img_src + '?' + Math.random() + '\' /><script>window.onload = function() { parent.document.getElementById(\'' + frameid + '\').height = document.getElementById(\'img\').height+\'px\'; }<' + '/script>';

                img.parent().append('<iframe id="' + frameid + '" src="javascript:parent.img;" frameBorder="0" scrolling="no" width="100%"></iframe>');

                img.remove();

            }

        });

                         

</script>

===============================================================================================================================

百度其他方法二:

<?php 
$p=$_GET['p']; 
$pics=file($p); 
for($i=0;$i< count($pics);$i++) 

echo $pics[$i]; 


?> 

使用方法:将以上内容文件保存成p.PHP上传到根目录 
然后在前端对应页面加入以下代码(修改你的域名进去即可)

改图片地址方法:

<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>

<script>

                          $(function(){

                                   varpattern = /^http:\/\/mmbiz/;

                                   varpatterns = /^https:\/\/mmbiz/;

                                   varmmsns = /^http:\/\/mmsns/;

                                   varmmsnss = /^https:\/\/mmsns/;

                                   varprefix= 'http://你的域名/p.php?p=';                                  

$("img").each(function(){

                                            varsrc = $(this).attr('src');

                                            if(pattern.test(src)){

                                                     varnewsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                            if(patterns.test(src)){

                                                     varnewsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                            if(mmsns.test(src)){

                                                     varnewsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                            if(mmsnss.test(src)){

                                                     varnewsrc = prefix+src;

                                                     $(this).attr('src',newsrc);

                                            }

                                   });

                          });

                  </script>

 

菜鸟一枚,希望对大家有帮助!