Browse Source

Add `R_SUSPICIOUS_IMAGES` rule.

tags/1.0.5
Vsevolod Stakhov 8 years ago
parent
commit
0ea784ef25
1 changed files with 44 additions and 0 deletions
  1. 44
    0
      rules/html.lua

+ 44
- 0
rules/html.lua View File

@@ -96,4 +96,48 @@ rspamd_config.R_EMPTY_IMAGE = {
score = 2.0,
group = 'html',
description = 'Message contains empty parts and image'
}

rspamd_config.R_SUSPICIOUS_IMAGES = {
callback = function(task)
local tp = task:get_text_parts() -- get text parts in a message

for _, p in ipairs(tp) do
local h = p:get_html()

if h then
local l = p:get_words_count()
local img = h:get_images()
local pic_words = 0

if img then
for _, i in ipairs(img) do
if i['embedded'] then
local dim = i['width'] + i['height']

-- do not trigger on small and large images
if dim > 100 and dim < 3000 then
-- We assume that a single picture 100x200 contains approx 3 words of text
pic_words = pic_words + dim / 100
end
end
end
end

if l + pic_words > 0 then
local rel = pic_words / (l + pic_words)

if rel > 0.5 then
return true, (rel - 0.5) * 2
end
end
end
end

return false
end,

score = 5.0,
group = 'html',
description = 'Message contains many suspicious messages'
}

Loading…
Cancel
Save