But the real solution is to cap the number of repeats at a reasonable level.
.* # DON'T USE
.+ # DON'T USE
.{1,17} # for some value of 17
.{n,n+17} # for some values of n and 17

So the greater the desired repeat count, the more likely SA is to stall out/crash? But ungreedy isn't working with high numbers and 17 isn't enough - the accuracy of the test is dependent on finding a minimum count (30 and 60). Atomic groups are also not working:

        full FloatingTags3 /(?>>\s?[\$%A-Z0-9]\s?<.*?){90,}/is

Does this just have to be done with Perl (assuming it can be)?


I generally find it much easier to match against the text part. Or do your messages not have text parts?

The target in question is an elaborate column spam that uses FLOAT HTML to put text into columns instead of lines/rows. The text looks like this only much taller:

Hi
C
P
X
V
V
A
L
I
r
a
A
I
m
e
A
o
n
L
A
b
v
L
z
a
I
G

Reply via email to