Http请求防篡改

签名参数Sign生成方法:

1.将所有的参数通过字母升序排序

2.将排序后的参数按(keyvalue)的方式拼成一个字符串,把请求参数中的&转换成''.

3.把和服务端约定好的验证密钥key放到拼接好字符串的前面,然后MD5 32位加密并转成大写

例如:

假如请求的数据是

http://www.xxx.com/controller/interface?sign=sign_value&p=v1&c1=n3&method=queryXXX&f3=vn(实际情况最好是通过post方式发送),其中sign参数对应的sign_value就是签名的值。
(1)拼接字符串并升序排序,c1=p3&f3=vn&method=queryXXX&p=v1
(2)参数名和值的拼接:c1p3f3vnmethodqueryXXXpv1
(3)把和服务端约定好的验证密钥key,比如和服务端约定的验证密钥key是key9a8bc7。就得到新的字符串key9a8bc7c1p3f3vnmethodqueryXXXpv1
(4)将得到新的字符串key9a8bc7c1p3f3vnmethodqueryXXXpv1进行md5加密计算,然后转为大写,得到的这个值就是sign_value签名值。
注意,计算md5之前请确保接口与接入方的字符串编码一致,如统一使用utf-8编码或者GBK编码,如果编码方式不一致则计算出来的签名会校验失败。

当然了还有通过代理服务拦截的,客户端在请求时先访问代理服务器验证通过后在请求主机访问。

一些其它方式防篡改方法如下:

(1)设置客户端IP黑白名单

(2)请求参数Sign签名

(3)请求方式换成Https

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章