一种PHP接口安全过滤方法及系统与流程

文档序号:17726479发布日期:2019-05-22 02:32阅读:165来源:国知局
一种PHP接口安全过滤方法及系统与流程

本发明涉及app安全技术领域,特别是一种php接口安全过滤方法及系统。



背景技术:

在internet大众化飞速演变的今天,应用安全所面临的挑战日益严峻。应用攻击技术越来越成熟和大众化,针对app的攻击和破坏不断增长,app安全风险达到了前所未有的高度,如非法的客户端请求、接口参数的不完整性、易力破解等风险。



技术实现要素:

为解决现有技术中存在的问题,本发明提供了一种php接口安全过滤方法及系统,具有更好的逻辑处理和安全效果处理,能一定程度上排解暴力接口破解、抓包攻击和参数篡改。

本发明采用的技术方案是:

一种php接口安全过滤方法,包括如下步骤:

a、接收用户客户端安装完成后发出的请求证书指令,生成适配该用户客户端的证书,其中,该证书包括用户客户端公钥和用户客户端私钥,将用户客户端公钥保存于服务器,将服务器公钥和用户客户端私钥发送至用户客户端用于接口通讯;

b、接收用户客户端发出的初始化指令,并在接收到初始化指令后向其发送唯一的口令,同时也将该口令保存于服务器;

c、接收用户客户端发出的加密数据包,该加密数据包包含通讯数据、签名和md5值,其中,通讯数据使用服务器公钥加密,签名使用客户端私钥加密,md5值根据口令计算得出;

d、解密用户客户端发出的加密数据包,读取服务器上相应口令,根据服务器上的口令再次计算md5值,并将该md5值与加密数据包中的md5值进行比对,如不相同,则表示加密数据包异常,丢弃该加密数据包;如相同,则进行步骤e;

e、使用用户客户端公钥解密加密数据包中的签名,如解密不成功,则表示加密数据包异常,丢弃该加密数据包;如解密成功,则进入步骤f;

f、使用服务器私钥解密加密数据包中的通讯数据,如解密不成功,则表示加密数据包异常,丢弃该加密数据包;如解密成功,则读取通讯数据。

优选地,在步骤c中:所述用户客户端发出的加密数据包中的md5值由用户客户端使用口令和当前时间戳计算生成;

在步骤d中:再次计算的md5值,由服务器上的口令和读取的加密数据包中的时间戳计算生成。

优选地,还包括如下步骤:

为所有的接口设置一一对应的序列号,将接口的序列队列保存于服务器上;

接收用户客户端的操作指令,将其调用接口的顺序与服务器上的序列队列对比,如遵循调用接口的序列逻辑,则表示数据为合法数据;如不遵循调用接口的序列逻辑,则表示数据为伪装数据。

一种php接口安全过滤系统,包括:

客户端模块:用于安装用户客户端并与服务器通过接口通讯,从服务器端获取服务器公钥、用户客户端私钥和唯一口令,并加密发送给服务器的数据包;

服务器:用于向客户端模块发送服务器公钥、用户客户端私钥和唯一口令,验证并解密客户端模块发送的数据包,调用序列队列验证客户端的操作;

序列模块:用于对所有的通讯接口配置一一对应的序列号,并将接口的序列队列发送到服务器。

优选地,客户端模块中服务器发送的加密数据包包含通讯数据、签名和md5值,其中,通讯数据使用服务器公钥加密,签名使用客户端私钥加密,md5值根据口令和时间戳计算得出;服务器验证数据包时,读取服务器上相应口令,根据服务器上的口令和读取的数据包时间戳再次计算md5值,并将该md5值与加密数据包中的md5值进行比对验证。

本发明的有益效果是:

1、使用动态密码验证有效性。

2、使用rsa签名以及动态资源证书加密请求包,确定参数的准确和完整。

3、使用逻辑流程接口id,验证用户使用流程以及频率处理。

附图说明

图1为本发明实施例1的流程示意图;

图2为本发明实施例2的结构示意图;

附图标记:1、客户端模块,2、服务器,3、序列模块。

具体实施方式

下面结合附图对本发明的实施例进行详细说明。

实施例

如图1所示,一种php接口安全过滤方法,包括如下步骤:

a、接收用户客户端安装完成后发出的请求证书指令,生成适配该用户客户端的证书,其中,该证书包括用户客户端公钥和用户客户端私钥,将用户客户端公钥保存于服务器,将服务器公钥和用户客户端私钥发送至用户客户端用于接口通讯;

b、接收用户客户端发出的初始化指令,并在接收到初始化指令后向其发送唯一的口令,同时也将该口令保存于服务器;

c、接收用户客户端发出的加密数据包,该加密数据包包含通讯数据、签名和md5值,其中,通讯数据使用服务器公钥加密,签名使用客户端私钥加密,md5值根据口令计算得出;

d、解密用户客户端发出的加密数据包,读取服务器上相应口令,根据服务器上的口令再次计算md5值,并将该md5值与加密数据包中的md5值进行比对,如不相同,则表示加密数据包异常,丢弃该加密数据包;如相同,则进行步骤e;

e、使用用户客户端公钥解密加密数据包中的签名,如解密不成功,则表示加密数据包异常,丢弃该加密数据包;如解密成功,则进入步骤f;

f、使用服务器私钥解密加密数据包中的通讯数据,如解密不成功,则表示加密数据包异常,丢弃该加密数据包;如解密成功,则读取通讯数据。

优选地,在步骤c中:所述用户客户端发出的加密数据包中的md5值由用户客户端使用口令和当前时间戳计算生成;

在步骤d中:再次计算的md5值,由服务器上的口令和读取的加密数据包中的时间戳计算生成。

优选地,还包括如下步骤:

为所有的接口设置一一对应的序列号,将接口的序列队列保存于服务器上;

接收用户客户端的操作指令,将其调用接口的顺序与服务器上的序列队列对比,如遵循调用接口的序列逻辑,则表示数据为合法数据;如不遵循调用接口的序列逻辑,则表示数据为伪装数据。

例如用户a没有注册、没有登录,却使用摇一摇功能,可以判断信息为伪装传输。

本实施例的php接口安全过滤方法,将用户客户端私钥获取、唯一口令、口令结合时间戳的md5算法、接口的序列等多方面技术结合,相比于传统技术具有更好的逻辑处理和安全效果处理,能一定程度上排解暴力接口破解、抓包攻击和参数篡改。

实施例2

一种php接口安全过滤系统,包括:

客户端模块1:用于安装用户客户端并与服务器通过接口通讯,从服务器端获取服务器公钥、用户客户端私钥和唯一口令,并加密发送给服务器的数据包;

服务器2:用于向客户端模块发送服务器公钥、用户客户端私钥和唯一口令,验证并解密客户端模块发送的数据包,调用序列队列验证客户端的操作;

序列模块3:用于对所有的通讯接口配置一一对应的序列号,并将接口的序列队列发送到服务器。

优选地,客户端模块中服务器发送的加密数据包包含通讯数据、签名和md5值,其中,通讯数据使用服务器公钥加密,签名使用客户端私钥加密,md5值根据口令和时间戳计算得出;服务器验证数据包时,读取服务器上相应口令,根据服务器上的口令和读取的数据包时间戳再次计算md5值,并将该md5值与加密数据包中的md5值进行比对验证,如验证通过,则使用用户客户端公钥解密加密数据包中的签名,如解密成功,则再使用服务器私钥解密加密数据包中的通讯数据,如再次解密成功,则表示是合法数据包,读取通讯数据。

同时,每次收到接口通讯数据包时,服务器都对接口序列号进行验证,只有用户客户端调用接口的顺序符合逻辑才是合法数据,例如用户a没有注册、没有登录,却使用摇一摇功能,可以判断信息为伪装传输。

以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1