日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

        歡迎訪問 生活随笔!

        生活随笔

        當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

        综合教程

        使用浏览器访问或调试微信公众号(跳过微信认证)

        發(fā)布時間:2023/12/13 综合教程 141 生活家
        生活随笔 收集整理的這篇文章主要介紹了 使用浏览器访问或调试微信公众号(跳过微信认证) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


        因為大部分公眾號web應(yīng)用實際登錄都是使用用戶微信認(rèn)證登錄,下文主要是提供一種方法使在PC端使用任意瀏覽器繞過微信認(rèn)證完成登錄,后面就可以在瀏覽器中使用或調(diào)試web應(yīng)用。

        應(yīng)用服務(wù)器(我們自己的第三方應(yīng)用程序)需要知道是誰在訪問服務(wù)(登錄),而在微信公眾號應(yīng)用中登錄一般都是使用靜默的oauth2,由微信認(rèn)證用戶的真實性,并通知應(yīng)用服務(wù)器當(dāng)前用戶是哪位(openid)

        那能不能跳過微信應(yīng)用程序由第三方來模擬(模擬微信應(yīng)用程序,騙過微信oauth2服務(wù)器)完成oauth2授權(quán)?
        當(dāng)然如果您本身就是公眾號的管理者那可以直接設(shè)置自己的帳號為該公眾號開發(fā)者帳號,作為開發(fā)者帳號其實這些都不要去關(guān)心,因為你可以直接使用微信開發(fā)者工具去完成授權(quán),然后在開發(fā)者工具中進行調(diào)試
        但是即便擁有公眾號開發(fā)者權(quán)限,大部分基于UI的自動化測試工具無法控制微信開發(fā)者工具,基本上都是控制瀏覽器本身,最終也還是需要在瀏覽器中提供驗證。





        上圖是展示的一個一般情況下的微信授權(quán)過程。(https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842)

        請求1:一般就是一個對公眾號網(wǎng)頁的范圍,一旦我們自己的應(yīng)用服務(wù)器發(fā)現(xiàn)這個用戶授權(quán)失效(沒有相應(yīng)cookie,或cookie對不上),那服務(wù)器返回302,要求用戶(微信APP內(nèi)置 瀏覽器)跳轉(zhuǎn)至微信授權(quán)服務(wù)器 『https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect』 這里有個關(guān)鍵信息appid,應(yīng)用服務(wù)器會把appid帶上,以便微信授權(quán)服務(wù)器識別是那個公眾號來授權(quán)了

        請求2,3:用戶按302的指示向微信服務(wù)器進行授權(quán),在2,3中微信用戶不僅把之前的appid帶上,還帶上了uni(user information 正常也只在微信跟微信服務(wù)通訊中用),跟一個關(guān)鍵的key。(這個key值每次授權(quán)不不一樣,所以保存下來重放也無效),猜測key是由微信應(yīng)用程序根據(jù)用戶信息,公眾號信息加密合成的,外部應(yīng)用程序也是很難仿照。第2步 的 appid與uin向微信服務(wù)器換取了uuid,第3步,微信返回了關(guān)鍵的code參數(shù),并通知微信應(yīng)用程序301到 我們的應(yīng)用服務(wù)的地址。 (實際上一旦應(yīng)用服務(wù)器拿到code,后面的步驟就可以不一定一定需要微信APP參與了)

        請求4:用戶帶著微信返回的code請求我們的應(yīng)用服務(wù)器,我們自己的應(yīng)用服務(wù)器拿到code后向微信授權(quán)服務(wù)器換取網(wǎng)頁授權(quán)access_token 『https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code』 注意這個請求需要帶上secret,即表示這個請求只能由我們的應(yīng)用服務(wù)器來完成(secret不能公開)
        完成請求5后我們的應(yīng)用服務(wù)器已經(jīng)拿到openid,access_token ,簡單的應(yīng)用取得openid后即已經(jīng)能確定用戶的身份了。如果需要用戶的詳細(xì)信息可以使openid,access_token用進一步向微信服務(wù)器請求

        結(jié)束:一般應(yīng)用服務(wù)器使用用戶的openid標(biāo)識用戶,所以得到通過用戶請求中的code獲取到openid后即表示用戶已經(jīng)被認(rèn)證,應(yīng)用服務(wù)器此時通常在這個請求的response中加入Set-Cookie將登錄信息寫入微信瀏覽器(或者對之前的cookie的認(rèn)證信息標(biāo)記為有效)


        通過上面簡單的步驟可以看出來無論是客戶端(微信)還是應(yīng)用服務(wù)器都有私有的類似secret的數(shù)據(jù),來保證各自的不可偽造性。所以無論是想要偽造誰都不是那么簡單

        但是一旦微信oauth2完成后的安全性就會變成一般瀏覽器的一樣,應(yīng)用服務(wù)器驗證用戶基本上都憑借請求中帶的含有十分信息的cookie。也就是說我們只要能在微信公眾號(服務(wù)號)應(yīng)用完成認(rèn)證后將相應(yīng)的cookie取出并寫入瀏覽器(或者其他調(diào)試工具),那瀏覽器就可以通過后面應(yīng)用服務(wù)器的身份驗證(無論當(dāng)前網(wǎng)頁使用怎樣的域名甚至是前端人員的本地頁面)

        那現(xiàn)在就是2個步驟:

        獲取網(wǎng)站授權(quán)完成后的cookie(cookie可能會有很多,而我們其實不用關(guān)注哪個是認(rèn)證用戶信息用的,全部拿過來就行了)。對于cookie的獲取其實還是比較方便的,如果被設(shè)置為微信公眾號的開發(fā)者可以直接使用微信web開發(fā)者工具,調(diào)試信息包括cookies也都會有,如果不是開發(fā)者無法進入調(diào)試模式也沒有關(guān)系,任何針對http協(xié)議及更底層協(xié)議的抓包工具都可以查看request所攜帶的cookie信息。
        然后就是將cookies信息寫入瀏覽器,如果是瀏覽器可以在Console中修改cookies,不過要求必須必須帶有js執(zhí)行能力的控制臺的瀏覽器。還是一個就是通過response的head頭 Set-Cookie來完成cookie的寫入及修改。


        下面接受一種更簡單的步驟完上面2個步驟
        使用Fiddler插件freeCookies 完成cookies的操作 (下載及使用說明: https://www.cnblogs.com/lulianqi/p/9481203.html)

        直接在手機微信上打開公眾號(訂閱號)頁面,使用fiddler抓取指定網(wǎng)站任意頁面請求(也可以使用PC版微信打開公眾號頁面)
        進入free cookies 標(biāo)簽頁(free cookies 插件下載地址 使用說明)
        選擇目標(biāo)域名網(wǎng)址的任意頁面請求(注意圖片及js資源可能不含有cookies信息)點擊Get Cookies獲取cookie (如下圖)


        打開本地調(diào)試頁面(也可以是其他域名或是同一域名)



        填寫目標(biāo)地址到UrlFilter,勾選Injeck Cookies,在瀏覽器中對該站點任意請求進行刷新操作(cookie 寫入完成后建議取消勾選,或者不要勾選Inject Always)
        寫入cookies后就可以看到頁面再與服務(wù)器的交互就已經(jīng)完成了“登錄”



        最后下圖展示一張京東到家公眾號應(yīng)用直接在chrome,并完成了微信的認(rèn)證登錄。(實際是手機微信的登錄后將cookie再寫到Chrome里,這里jd需要在瀏覽器中修改UA,chrome本身就可以直接修改UA)

        以上使用到的Fiddler插件freeCookies 說明見https://www.cnblogs.com/lulianqi/p/9481203.html

        源代碼見github:https://github.com/lulianqi/FreeCookies

        總結(jié)

        以上是生活随笔為你收集整理的使用浏览器访问或调试微信公众号(跳过微信认证)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

        如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。