Closed lanrion closed 10 years ago
尝试使用MD5
将token
值加密
get 'weixin/:encrypted_weixin_token', to: 'weixin#index'
post 'weixin/:encrypted_weixin_token', to: 'weixin#reply'
缺点是要在Model
里保存MD5值
@turristan 一个是由开发者指定secret(自动生成到配置文件也可),通过这个sceret来做“混合”加密,这个是最简单的做法。另外一种可以考虑 "id+created_at+weixin_token" md5加密,同样,也是需要保存到库里,麻烦。第三种方法就是加密后的值,直接保存到用户配置的"token_column"内,页面上再解密显示。 你觉得哪种合适?
暴露在url中暴露token, 风险是程序可能被人盗用。
既然腾讯有一定的验证机制, 所以我们只要不暴露token就行了。
简单(到无脑)的方法是, Model 数据结构改成(rails g model WeiXinConfiguration secret token
),将来还要加 app_key
和app_secret
的。config 将 token_column 改成 secret_column。
get 'weixin/:secret', to: 'weixin#index'
post 'weixin/:secret', to: 'weixin#reply'
使用token_string也类似。 觉得加密并不是必须的。
Fixed it in v1.1.0 version: https://github.com/lanrion/weixin_rails_middleware/tree/v1.1.0 .
不安全。