Information Technology Reference
In-Depth Information
Table 5.
The description of states and semantic operators of HTTP-headers analysis module
State
transition
Transition
condition
Semantic operator, which is
executed during the transition
Transition
from
s
9
to
s
10
The first input
symbol is a letter of
English
The semantic operator
y
17
is executed. Operator
y
17
performs the following actions:
−
initializes variables
i
,
j
, and
k
with zero values (
i
=
0,
j
= 0,
k
= 0). Variable
i
is used for header length
calculation,
j
is used for the calculation of length of
header variable data,
k
is used for the calculation of
number of headers in HTTP-request,
−
clears the value of variable
Z
(
Z
= “”) and
initializes it with input symbol
a
.
alphabet
a
∈
A
The input symbol
is a letter of
English alphabet
a
∈
A
The semantic operator
y
18
is executed. Operator
y
18
performs the following actions:
−
increments the value of variable
i
(
i
=
i
+1),
−
concatenates the value of
Z
with input symbol
a
or
n
(
Z
=
Z
+
a
or
Z
=
Z
+
n
),
−
performs the following check - if
i
>
L
VarLength
, then
subsequent processing of input strings is stopped
because the length of analyzed header violates the
specified restrictions
Transition
from
s
10
to
s
10
The input symbol
is a symbol
n
∈
N
The semantic operator
y
19
is executed. Operator
y
19
performs the following actions:
−
reinitializes the variable
i
with zero value (
i
=0),
−
performs the following check - if the value of
Z
doesn't correspond to any of the elements of array
S
Headers
then subsequent processing of input strings
is stopped because the analyzed HTTP-request
contains forbidden header,
−
reinitializes
Z
with zero value (
Z
=0)
Transition
from
s
10
to
s
11
The input symbol
is a symbol “=”
The semantic operator
y
20
is executed. Operator
y
20
performs the following actions:
−
increments the value of variable
j
(
j
=
j
+1),
−
performs the following check - if
j
>
L
ValLength
, then
subsequent processing of input strings is stopped
because the length of analyzed data violates the
specified restrictions
The input symbol
is a letter of
English alphabet
a
∈
A
Transition
from
s
11
to
s
11
The input symbol
is a symbol
n
∈
N
The semantic operator
y
21
is executed. Operator
y
21
performs the following actions:
−
initializes the value of
j
with zero value (
j
= 0),
−
increments the value of variable
k
(
k
=
k
+1),
−
performs the following check - if
k
>
L
NHeaders
, then
subsequent processing of input strings is stopped
because the number of headers in HTTP-requests
violates the specified restrictions
The input symbol
is a symbol
“CRLF”
Transition
from
s
11
to
s
10
Transition
from
s
10
to
s
12
Transition
from
s
9
to
s
12
The input symbol
is a symbol
“CRLF”
No semantic operators are executed