關於解決微信圖文防盜鏈方案

来源:http://www.cnblogs.com/xsxshmily/archive/2017/12/07/8000043.html
-Advertisement-
Play Games

推薦方法一: <meta name="referrer" content="never"> 就這麼一句話,把它放到<head>頭裡就可以了。記得要把其他影響圖片的東西給刪了,不然會衝突。 我自己本人的,因為我希望點擊一個鏈接時跳轉到微信圖文,然後在該頁面點擊返回圖標從微信圖文返回之前的APP頁面,我 ...


推薦方法一

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

就這麼一句話,把它放到<head>頭裡就可以了。記得要把其他影響圖片的東西給刪了,不然會衝突。

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

我自己本人的,因為我希望點擊一個鏈接時跳轉到微信圖文,然後在該頁面點擊返回圖標從微信圖文返回之前的APP頁面,我在自己網站的HTML里的div中嵌套一個<iframe>標簽,src鏈接到微信公眾號里的圖文,跑出來後只能顯示文字,不能載入顯示圖片,百度了說是微信的防盜鏈,有說在<head>標簽裡加<meta name="referrer" content="never">但好像也只能在手機的訪問顯示,也有把圖片的data-src改成src(在瀏覽器右鍵圖片檢查時可以看到這些屬性,更改時是可以顯示的,但我不知道怎麼保,其他不太清楚,反正我不知道什麼鬼),但我頁面只是一個div里嵌套iframe標簽鏈接到微信公眾號的圖文,沒其他的,找了一天,為此還白花了15塊買個文檔來也沒用,最後終於找到了一個只用js就可以破解微信圖文防盜鏈的,感謝來自博客園的“前端小透明”

地址:http://www.cnblogs.com/xiaomingSun/p/6761708.html

如果你只是通過點擊一個鏈接跳轉到微信圖文的話,直接一個標簽鏈接到你的目的地址就行,但是這樣你不能返回之前的頁面,所以我在div里寫放了個返回圖片,再在div里嵌套一個<iframe>標簽,鏈接到微信圖文,這樣在移動端跑出來後就只能看到文字,圖片都沒有載入顯示出來,這和http的referrer有關係,具體原理請百度微信防盜鏈原理瞭解,下麵就是我的<body>代碼:

<body>

    <div class="container">

        <!--S-頂部欄-->

        <div class="header-box">

            <div class="left-return">

                <a href="#">

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

                </a>  

            </div>

            <div class="middle">資訊中心</div>

        </div>

        <!--E-頂部欄-->

        <!--S-iframe資訊欄-->

        <div class="news-box">

             <!—如果加入了下麵的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 class="M_detail-con" 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" style="width:100%" 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() {

                                   var pattern = /^http:\/\/mmbiz/;

                                   var patterns = /^https:\/\/mmbiz/;

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

                                   var mmsnss = /^https:\/\/mmsns/;

                                   var prefix= 'http://你的功能變數名稱/p.php?p=';                                  

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

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

                                            if(pattern.test(src)){

                                                     var newsrc = prefix+src;

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

                                            }

                                            if(patterns.test(src)){

                                                     var newsrc = prefix+src;

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

                                            }

                                            if(mmsns.test(src)){

                                                     var newsrc = prefix+src;

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

                                            }

                                            if(mmsnss.test(src)){

                                                     var newsrc = prefix+src;

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

                                            }

                                   });

                          });

                  </script>

 

菜鳥一枚,希望對大家有幫助!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這是繼前兩篇後的第三篇,這一章主要是說關於react裡面樣式的一些問題,這樣讓你頁面構建更加美觀。 ...
  • 一般元素在頁面所占的空間包括:magin border padding content。以前一直以為子元素設置百分比寬高都是以父元素的content值為基準計算的。但是當子元素的position不同時,卻是不同的結果。 demo 用如下小demo測試: 效果如下: 子元素以父元素的content寬度 ...
  • $("#ZB").attr("ondrawsummarycell", "ondrawsummarycell"); // ZBMX需要替換為子表對應控制項的控制項編號 彙總數據 $("#ZB").attr("ondrawcell", "ondrawcell"); // ZBMX需要替換為子表對應控制項的控制項... ...
  • git是什麼 簡單來說,Git,它是一個快速的 分散式版本控制系統 。 同傳統的 集中式版本控制系統 不同,Git的分散式特性使得開發者間的協作變得更加靈活多樣。 這時候我們會想到: 1. 什麼又是版本控制呢? 2. 什麼是分散式什麼是集中式? 我們帶著問題往下走。 版本控制 版本控制是一種記錄一個 ...
  • 變數、嵌套、混合(mixin)、繼承拓展、@import、comment 變數的意義 在sass里我們可以定義多個變數來存放顏色、邊框等等的樣式,這樣就可以在下麵想要使用樣式的時候使用變數了 這樣的優點就是便於維護,更改方便 變數的使用 可以通過$來定義變數,在變數名字中可以使用 和_來作為連接,並 ...
  • 1.安裝sass 1.安裝ruby 因為sass是用ruby語言寫的,所以需要安裝ruby環境 打開安裝包去安裝ruby,記住要勾選 下麵選項來配置環境路徑 [x] Add Ruby executables to your PATH 安裝完成之後繼續下一步操作 2.安裝sass 在cmd里通過gem ...
  • Webpack 是一款目前非常流行的前端模塊打包工具,可以將項目中所載入的模塊進行打包,以及將 一些瀏覽器不支持的語言進行轉換。 ...
  • 一、Better Scroll 滾動原理 1.下圖能直觀的表示better-scroll的滾動原理 2.html設置 <div class="wrapper"> <ul class="content"> <li>...</li> <li>...</li> ... </ul> <!-- 這裡可以放一些 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...