申請(qǐng)公眾平臺(tái)開(kāi)發(fā)者模式需要填寫一個(gè)URL和一個(gè)Token, 見(jiàn)下圖:

如果這個(gè)URL和Token被別人猜中了, 并且你不判斷消息中的ToUserName屬性是否跟你微信號(hào)相配, 那么別人的公眾帳號(hào)申請(qǐng)開(kāi)發(fā)者時(shí)填寫你的URL和你的Token, 別人的公眾帳號(hào)就能把你公眾帳號(hào)的功能盜用了.

URL

你的微信號(hào)有時(shí)會(huì)要求用戶綁定一些信息, 一般都是一個(gè)HTML5的網(wǎng)頁(yè), 這條微信內(nèi)容其實(shí)就是一段HTML. 問(wèn)題是復(fù)制這條消息到其它文本框中, HTML是暴露的, 你的<a href=”XXX”>XXX</a>會(huì)暴露出來(lái), 所以別人可以輕而易舉的拿到鏈接地址.

關(guān)鍵是不要讓別人根據(jù)你的鏈接猜到你申請(qǐng)開(kāi)發(fā)者時(shí)填寫的URL, 在我看來(lái), 以下格式的URL都相對(duì)不安全的:

http://www.XX.com/

http://www.XX.com/微信號(hào)

http://www.XX.com/微信號(hào)/weixin.aspx

http://www.XX.com/微信號(hào)/weixin.ashx

http://www.XX.com/微信號(hào)/weixin.php

http://www.XX.com/微信號(hào)/微信號(hào).aspx

http://www.XX.com/微信號(hào)/微信號(hào).ashx

http://www.XX.com/微信號(hào)/微信號(hào).php

等等…

Signature

在群里經(jīng)常聽(tīng)別人說(shuō)圖省事, 直接把echostr返回, 根本沒(méi)顧忌這樣做所帶來(lái)的后果. 如果別人知道了你的URL, 隨便填一個(gè)Token, 他就順利驗(yàn)證成功了.

Token

Token建議使用隨機(jī)字符串, 以下格式的Token都是相對(duì)不安全的:

123

123456

abc

微信號(hào)

微信號(hào)123

等等...

如果不巧, 上面兩點(diǎn)你都沒(méi)有注意, 別人可能就會(huì)得逞. 上午我就測(cè)試了一個(gè), 猜了一次就成功了.

ToUserName

有人說(shuō)你不是知道了我的URL和Token, 我改一下Token你不就沒(méi)用了么. 關(guān)鍵問(wèn)題是別人之前用你的URL和Token驗(yàn)證成功了, 微信一旦認(rèn)為你成功了, 以后還會(huì)再次驗(yàn)證這個(gè)URL和Token么? 所以微信每條消息返回的ToUserName屬性不是沒(méi)用的, 你的程序應(yīng)該判斷是否跟你的微信號(hào)相配.

如果你的URL和Token暴露了, 又沒(méi)有判斷ToUserName, 那么你的益達(dá)就真的是別人的益達(dá)了.

給微信的建議

1. URL必須是唯一的

A帳號(hào)已經(jīng)用這個(gè)URL成功激活開(kāi)發(fā)者模式, 就不應(yīng)該允許另一個(gè)B帳號(hào)再用這個(gè)URL來(lái)激活開(kāi)發(fā)者模式.

2. Token由公眾平臺(tái)生成

可以在用戶輸入U(xiǎn)RL之后, 系統(tǒng)為用戶生成Token. 用戶在自己的系統(tǒng)中改好Token后再驗(yàn)證, 這樣可以保證Token的隨機(jī).



本文鏈接: http://www.cnblogs.com/technology/p/wenxin_security.html

  哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無(wú)需額外費(fèi)用,即可穩(wěn)步提升排名至首頁(yè)。歡迎體驗(yàn)最佳的哈爾濱網(wǎng)站建設(shè)。