hmac安全验证

跳转请求安全验证

从万全云电商跳转到应用的请求,在参数中都包含hmac,应用可以验证这个字段,来确认请求是否来源自万全云电商。
以下示例如果计算hmac,在不同场景的跳转中,所带参数会有区别,除了hmac以外的参数,都需参与计算。
例如万全云电商返回授权码的请求参数如下:

{
  "shop=a94a110d86d2452eb3e2af4cfb8a3828&code=a84a110d86d2452eb3e2af4cfb8a3828&merchant_id=1&time_stamp=2013-08-27T13:58:35Z&hmac=a2a3e2dcd8a82fd9070707d4d921ac4cdc842935bf57bc38c488300ef3960726"
}

将请求中的所有参数,转换成如下的字典:

{
  "shop": "a94a110d86d2452eb3e2af4cfb8a3828",  
  "code": "a84a110d86d2452eb3e2af4cfb8a3828",  
  "merchant_id": "1",
  "time_stamp": "2013-08-27T13:58:35Z",    
  "hmac": "a2a3e2dcd8a82fd9070707d4d921ac4cdc842935bf57bc38c488300ef3960726"
}
将上面字典结构中,hmac字段剔除,得到下面的结构:
{
  "shop": "a94a110d86d2452eb3e2af4cfb8a3828",  
  "code": "a84a110d86d2452eb3e2af4cfb8a3828",  
  "merchant_id": "1",
  "time_stamp": "2013-08-27T13:58:35Z"
}
将上面的字典,按照键值正序排列,组成字符串:
{
  "code=a84a110d86d2452eb3e2af4cfb8a3828&merchant_id=1&shop=a94a110d86d2452eb3e2af4cfb8a3828&time_stamp=2013-08-27T13:58:35Z"
}
最后,将上面的字符串,应用密钥,通过 HMAC-SHA256 加密,C# 代码示例如下:
using System;
using System.Linq;
using System.Text;

namespace RestSharp.Authenticators
{
    public class HttpBasicAuthenticator : IAuthenticator
    {
        private readonly string authHeader;

        public HttpBasicAuthenticator(string username, string password)
        {
            var token = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", username, password)));

            authHeader = string.Format("Basic {0}", token);
        }

        public void Authenticate(IRestClient client, IRestRequest request)
        {
            // only add the Authorization parameter if it hasn't been added by a previous Execute
            if (!request.Parameters.Any(p => "Authorization".Equals(p.Name, StringComparison.OrdinalIgnoreCase)))
                request.AddParameter("Authorization", authHeader, ParameterType.HttpHeader);
        }
    }
}
计算得出的结果,如和请求参数中的hmac相同,则说明请求确实来自万全云电商。
  • 最后更新于 2019-10-26

来自客户的评价

张小姐

专注高端眼镜

用万全云商城已将近一年的时间了。在这一年里面印象最深刻的是,前台体验非常棒,人性化的后台设计,以及及时、贴心的售后服务跟进。希望万全云商城越来越好,加油!!!

婴儿之家

跨境母婴B2C商城

我是从2014年10月下旬用开始万全云商城建站,做的是B2C独立站,学的效果目前非常良好,客服特别给力,我们提出的各种问题,都能及时,很快的得到解决,选择万全云商城没错。

Jason 王

专注电子产品。

从3C、手机配件、平衡车再到VR。我只相信万全云商城。另外,我强烈推荐定制专属商城,他们定制的站点真心不错。

8,632

我们期待您的加入。

更多成功故事
阿里云 paypal  速卖通 敦煌网 新网互联
电话咨询

15980819537

在线咨询 扫码关注

关注官方微信