Http请求防篡改
Posted Simon格子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
以上是关于Http请求防篡改的主要内容,如果未能解决你的问题,请参考以下文章