报文的解码方法技术

技术编号:39411173 阅读:10 留言:0更新日期:2023-11-19 16:02
本申请公开了一种报文的解码方法

【技术实现步骤摘要】
报文的解码方法、装置及电子设备


[0001]本申请涉及通信
,尤其涉及一种报文的解码方法

装置及电子设备


技术介绍

[0002]Web
应用防火墙
WAF(Web Application Firewall)
能够对于网络中的
HTTP/HTTPS
流量进行识别

解析并检测,有效防范
sql
注入,命令注入,代码注入等安全隐患的发生

[0003]其中,有些数据因为包含隐私数据,或者因为容易引起歧义,或者因为长度过长,不能直接在网络中传输,此时需要对数据进行了
url、base64、unicode
等方式进行编码
。WAF
中会通过缓存的方式将整条数据流的数据报文缓存起来,进行解析解码,然后送入检测

[0004]但是这种方式受限于缓存大小,由于报文较长,报文也不能够完整缓存下来,导致解码不完整,导致解码的可靠性较低


技术实现思路

[0005]有鉴于此,本申请提供一种报文的解码方法

装置及电子设备,用以提高对报文解码的可靠性,如下:
[0006]一种报文的解码方法,所述方法包括:
[0007]获得待解码报文;
[0008]对所述待解码报文进行解码处理,以得到解码后的字符串和未解码的字符串;
[0009]其中,所述未解码的字符串用于拼接到其他报文中的字符串后再进行解码

[0010]上述方法,优选的,在所述待解码报文为接收到的第一个报文的情况下,按照编码格式,对所述待解码报文进行解码处理,以得到解码字符串和未解码字符串,包括:
[0011]设置编码层数为第一数值;
[0012]设置基础索引值为第二数值;
[0013]将所述待解码报文中的字符串作为当前字符串;
[0014]判断所述编码层数是否大于或等于目标数值;
[0015]如果所述编码层数大于或等于所述目标数值,将所述当前字符串确定为解码后的字符串;
[0016]如果所述编码层数小于所述目标数值,对所述当前字符串进行编码格式识别;
[0017]在没有识别出所述当前字符串的编码格式的情况下,将所述当前字符串确定为解码后的字符串;
[0018]在识别出所述当前字符串的当前编码格式的情况下,将所述当前编码格式插入到编码数组中已记录的编码格式之后,根据所述已记录的编码格式的编码索引值设置所述当前编码格式的编码索引值;其中,所述编码数组中被记录的第一个编码格式为基础编码格式,所述基础编码格式对应所述基础索引值;
[0019]按照所述当前编码格式对所述当前字符串进行解码,以得到第一解码字符串和第一未解码字符串;
[0020]将所述第一未解码字符串添加到所述编码数组中,所述第一未解码字符串对应于所述当前编码格式;
[0021]设置所述编码层数加1;
[0022]将所述第一解码字符串作为新的当前字符串,执行所述:判断所述编码层数是否大于或等于目标数值

[0023]上述方法,优选的,对所述当前字符串进行编码格式识别,包括:
[0024]按照每个待选编码格式之间的优先级顺序,依次判断所述待选编码格式对应的编码特征是否与所述当前字符串的字符串特征相匹配;
[0025]将第一个编码特征与所述当前字符串的字符串特征相匹配的待选编码格式,确定为所述当前字符串对应的当前编码格式;
[0026]如果没有待选编码格式对应的编码特征与所述当前字符串的字符串特征相匹配,确定没有识别出所述当前字符串的编码格式

[0027]上述方法,优选的,在所述待解码报文为在所述第一个报文之后接收到的报文的情况下,按照编码格式,对所述待解码报文进行解码处理,以得到解码字符串和未解码字符串,包括:
[0028]设置编码层数为第一数值;
[0029]设置当前索引值为第二数值;
[0030]将所述待解码报文中的字符串作为当前字符串;
[0031]判断所述编码层数是否大于或等于目标数值;
[0032]如果所述编码层数大于或等于所述目标数值,将所述当前字符串确定为解码后的字符串;
[0033]如果所述编码层数小于所述目标数值,对所述当前字符串进行编码格式识别;
[0034]在没有识别出所述当前字符串的编码格式的情况下,将所述当前字符串确定为解码后的字符串;
[0035]在识别出所述当前字符串的当前编码格式且所述编码层数为所述第一数值的情况下,判断所述当前编码格式与所述基础编码格式是否一致;
[0036]如果所述当前编码格式与所述基础编码格式一致,设置所述当前索引值为所述基础索引值加1;
[0037]根据所述基础编码格式的前一个编码格式及其对应的未解码字符串,对当前字符串进行处理,以得到更新字符串;
[0038]将所述更新字符串与所述基础编码格式对应的未解码字符串进行拼接,以得到第一字符串;
[0039]按照所述基础编码格式对所述第一字符串进行解码,以得到第一解码字符串和第一未解码字符串;
[0040]将所述第一未解码字符串添加到所述编码数组中,所述第一未解码字符串对应于所述基础编码格式;
[0041]设置所述编码层数加1;
[0042]将所述第一解码字符串作为新的当前字符串,执行所述:判断所述编码层数是否大于或等于目标数值

[0043]上述方法,优选的,根据所述基础编码格式的前一个编码格式及其对应的未解码字符串,对当前字符串进行处理,以得到更新字符串,包括:
[0044]如果所述编码数组中所述基础编码格式的前一个编码格式没有未解码字符串,将所述当前字符串确定为更新字符串;
[0045]如果所述编码数组中所述基础编码格式的前一个编码格式对应有未解码字符串,将所述前一个编码格式对应的未解码字符串拼接到所述当前字符串中;对所述当前字符串进行编码格式识别;在没有识别出所述当前字符串的编码格式的情况下,将所述当前字符串确定为更新字符串,删除所述编码数组中所述前一个编码格式对应的未解码字符串;在识别出所述当前字符串的当前编码格式的情况下,按照所述当前编码格式,对所述当前字符串进行解码,以得到更新字符串和第二未解码字符串;将所述第二未解码字符串添加到所述编码数组中,所述第二未解码字符串对应于所述前一个编码格式

[0046]上述方法,优选的,在识别出所述当前字符串的当前编码格式的情况下,在按照所述当前编码格式,对所述当前字符串进行解码,以得到更新字符串和第二未解码字符串之前,所述方法还包括:
[0047]如果所述当前编码格式与所述前一个编码格式不一致,设置所述前一个编码格式为所述当前字符串的当前编码格式

[0048]上述方法,优选的,如果所述当前编码本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种报文的解码方法,其特征在于,所述方法包括:获得待解码报文;对所述待解码报文进行解码处理,以得到解码后的字符串和未解码的字符串;其中,所述未解码的字符串用于拼接到其他报文中的字符串后再进行解码
。2.
根据权利要求1所述的方法,其特征在于,在所述待解码报文为接收到的第一个报文的情况下,按照编码格式,对所述待解码报文进行解码处理,以得到解码字符串和未解码字符串,包括:设置编码层数为第一数值;设置基础索引值为第二数值;将所述待解码报文中的字符串作为当前字符串;判断所述编码层数是否大于或等于目标数值;如果所述编码层数大于或等于所述目标数值,将所述当前字符串确定为解码后的字符串;如果所述编码层数小于所述目标数值,对所述当前字符串进行编码格式识别;在没有识别出所述当前字符串的编码格式的情况下,将所述当前字符串确定为解码后的字符串;在识别出所述当前字符串的当前编码格式的情况下,将所述当前编码格式插入到编码数组中已记录的编码格式之后,根据所述已记录的编码格式的编码索引值设置所述当前编码格式的编码索引值;其中,所述编码数组中被记录的第一个编码格式为基础编码格式,所述基础编码格式对应所述基础索引值;按照所述当前编码格式对所述当前字符串进行解码,以得到第一解码字符串和第一未解码字符串;将所述第一未解码字符串添加到所述编码数组中,所述第一未解码字符串对应于所述当前编码格式;设置所述编码层数加1;将所述第一解码字符串作为新的当前字符串,执行所述:判断所述编码层数是否大于或等于目标数值
。3.
根据权利要求2所述的方法,其特征在于,对所述当前字符串进行编码格式识别,包括:按照每个待选编码格式之间的优先级顺序,依次判断所述待选编码格式对应的编码特征是否与所述当前字符串的字符串特征相匹配;将第一个编码特征与所述当前字符串的字符串特征相匹配的待选编码格式,确定为所述当前字符串对应的当前编码格式;如果没有待选编码格式对应的编码特征与所述当前字符串的字符串特征相匹配,确定没有识别出所述当前字符串的编码格式
。4.
根据权利要求2所述的方法,其特征在于,在所述待解码报文为在所述第一个报文之后接收到的报文的情况下,按照编码格式,对所述待解码报文进行解码处理,以得到解码字符串和未解码字符串,包括:设置编码层数为第一数值;
设置当前索引值为第二数值;将所述待解码报文中的字符串作为当前字符串;判断所述编码层数是否大于或等于目标数值;如果所述编码层数大于或等于所述目标数值,将所述当前字符串确定为解码后的字符串;如果所述编码层数小于所述目标数值,对所述当前字符串进行编码格式识别;在没有识别出所述当前字符串的编码格式的情况下,将所述当前字符串确定为解码后的字符串;在识别出所述当前字符串的当前编码格式且所述编码层数为所述第一数值的情况下,判断所述当前编码格式与所述基础编码格式是否一致;如果所述当前编码格式与所述基础编码格式一致,设置所述当前索引值为所述基础索引值加1;根据所述基础编码格式的前一个编码格式及其对应的未解码字符串,对当前字符串进行处理,以得到更新字符串;将所述更新字符串与所述基础编码格式对应的未解码字符串进行拼接,以得到第一字符串;按照所述基础编码格式对所述第一字符串进行解码,以得到第一解码字符串和第一未解码字符串;将所述第一未解码字符串添加到所述编码数组中,所述第一未解码字符串对应于所述基础编码格式;设置所述编码层数加1;将所述第一解码字符串作为新的当前字符串,执行所述:判断所述编码层数是否大于或等于目标数值
。5.
根据权利要求4所述的方法,其特征在于,根据所述基础编码格式的前一个编码格式及其对应的未解码字符串,对当前字符串进行处理,以得到更新字符串,包括:如果所述编码数组中所述基础编码格式的前一个编码格式没有未解码字符串,将所述当前字符串确定为更新字符串;如果所述编码数组中所述基础编码格式的前一个编码格式对应有未解码字符串,将所述前一个编码格式对应的未解码字符串拼接到所述当前字符串中;对所述当前字符串进行编码格式识别;在没有识别出所述当前字符串的编码格式的情况下...

【专利技术属性】
技术研发人员:张少华刘辉王鹤邢汇芸梁坤磊
申请(专利权)人:北京网御星云信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1