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请求防篡改的主要内容,如果未能解决你的问题,请参考以下文章

使用防篡改措施验证“确认”电子邮件链接的防篡改方法?

网页防篡改系统与网站安全

网站防篡改脚本

前端安全JavaScript防流量劫持

iGuard6.0 — 有序组织的网页防篡改

如何让 iOS 应用防篡改?