申請公眾平臺開發(fā)者模式需要填寫一個URL和一個Token, 見下圖:
如果這個URL和Token被別人猜中了, 并且你不判斷消息中的ToUserName屬性是否跟你微信號相配, 那么別人的公眾帳號申請開發(fā)者時填寫你的URL和你的Token, 別人的公眾帳號就能把你公眾帳號的功能盜用了.
URL
你的微信號有時會要求用戶綁定一些信息, 一般都是一個HTML5的網(wǎng)頁, 這條微信內容其實就是一段HTML. 問題是復制這條消息到其它文本框中, HTML是暴露的, 你的<a href=”XXX”>XXX</a>會暴露出來, 所以別人可以輕而易舉的拿到鏈接地址.
關鍵是不要讓別人根據(jù)你的鏈接猜到你申請開發(fā)者時填寫的URL, 在我看來, 以下格式的URL都相對不安全的:
http://www.XX.com/微信號/weixin.aspx
http://www.XX.com/微信號/weixin.ashx
http://www.XX.com/微信號/weixin.php
http://www.XX.com/微信號/微信號.aspx
http://www.XX.com/微信號/微信號.ashx
http://www.XX.com/微信號/微信號.php
等等…
Signature
在群里經(jīng)常聽別人說圖省事, 直接把echostr返回, 根本沒顧忌這樣做所帶來的后果. 如果別人知道了你的URL, 隨便填一個Token, 他就順利驗證成功了.
Token
Token建議使用隨機字符串, 以下格式的Token都是相對不安全的:
123
123456
abc
微信號
微信號123
等等...
如果不巧, 上面兩點你都沒有注意, 別人可能就會得逞. 上午我就測試了一個, 猜了一次就成功了.
ToUserName
有人說你不是知道了我的URL和Token, 我改一下Token你不就沒用了么. 關鍵問題是別人之前用你的URL和Token驗證成功了, 微信一旦認為你成功了, 以后還會再次驗證這個URL和Token么? 所以微信每條消息返回的ToUserName屬性不是沒用的, 你的程序應該判斷是否跟你的微信號相配.
如果你的URL和Token暴露了, 又沒有判斷ToUserName, 那么你的益達就真的是別人的益達了.
給微信的建議
1. URL必須是唯一的
A帳號已經(jīng)用這個URL成功激活開發(fā)者模式, 就不應該允許另一個B帳號再用這個URL來激活開發(fā)者模式.
2. Token由公眾平臺生成
可以在用戶輸入URL之后, 系統(tǒng)為用戶生成Token. 用戶在自己的系統(tǒng)中改好Token后再驗證, 這樣可以保證Token的隨機.
本文鏈接: http://www.cnblogs.com/technology/p/wenxin_security.html
哈爾濱品用軟件有限公司致力于為哈爾濱的中小企業(yè)制作大氣、美觀的優(yōu)秀網(wǎng)站,并且能夠搭建符合百度排名規(guī)范的網(wǎng)站基底,使您的網(wǎng)站無需額外費用,即可穩(wěn)步提升排名至首頁。歡迎體驗最佳的哈爾濱網(wǎng)站建設。
