zoukankan      html  css  js  c++  java
  • 开发微信公众平台时需要注意的安全问题

            申请公众平台开发者模式需要填写一个URL和一个Token, 见下图:

            如果这个URL和Token被别人猜中了, 并且你不判断消息中的ToUserName属性是否跟你微信号相配, 那么别人的公众帐号申请开发者时填写你的URL和你的Token, 别人的公众帐号就能把你公众帐号的功能盗用了.

    URL

            你的微信号有时会要求用户绑定一些信息, 一般都是一个HTML5的网页, 这条微信内容其实就是一段HTML. 问题是复制这条消息到其它文本框中, HTML是暴露的, 你的<a href=”XXX”>XXX</a>会暴露出来, 所以别人可以轻而易举的拿到链接地址.

            关键是不要让别人根据你的链接猜到你申请开发者时填写的URL, 在我看来, 以下格式的URL都相对不安全的:

    http://www.XX.com/

    http://www.XX.com/微信号

    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

            在群里经常听别人说图省事, 直接把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帐号已经用这个URL成功激活开发者模式, 就不应该允许另一个B帐号再用这个URL来激活开发者模式.

    2. Token由公众平台生成

            可以在用户输入URL之后, 系统为用户生成Token. 用户在自己的系统中改好Token后再验证, 这样可以保证Token的随机.

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

  • 相关阅读:
    android driver开发常见的英文缩写
    简析quakeIII中利用链表实现的内存管理(1)
    链表的建立
    boson netsim5.31平台上组建交换式网络
    第六周周记
    价值观作业
    C语言的知识与能力的自评
    学习进度表
    Web表格部分内容
    线性表部分知识
  • 原文地址:https://www.cnblogs.com/technology/p/wenxin_security.html
Copyright © 2011-2022 走看看