summaryrefslogtreecommitdiffstats
path: root/rules
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-04-24 17:06:55 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-04-24 17:06:55 +0100
commit7c68de49e50574dccaf5f026a1491bf2c9df83c2 (patch)
tree9aa27693ab1cc2576a0e59aa027511732def31bc /rules
parent0d3cf178888070d4cd057507b8b0a9140c3dbaea (diff)
downloadrspamd-7c68de49e50574dccaf5f026a1491bf2c9df83c2.tar.gz
rspamd-7c68de49e50574dccaf5f026a1491bf2c9df83c2.zip
[Fix] Fix R_BAD_CTE_7BIT rule
Issue: #1590
Diffstat (limited to 'rules')
-rw-r--r--rules/misc.lua20
-rw-r--r--rules/regexp/headers.lua14
2 files changed, 20 insertions, 14 deletions
diff --git a/rules/misc.lua b/rules/misc.lua
index 422edfcc3..20505828b 100644
--- a/rules/misc.lua
+++ b/rules/misc.lua
@@ -590,3 +590,23 @@ rspamd_config.INFO_TO_INFO_LU = {
description = 'info@ From/To address with List-Unsubscribe headers',
score = 2.0
}
+
+-- Detects bad content-transfer-encoding for text parts
+
+rspamd_config.R_BAD_CTE_7BIT = {
+ callback = function(task)
+ local tp = task:get_text_parts() or {}
+
+ for _,p in ipairs(tp) do
+ local cte = p:get_mimepart():get_cte() or ''
+ if cte ~= '8bit' and p:has_8bit_raw() then
+ return true,1.0,cte
+ end
+ end
+
+ return false
+ end,
+ score = 4.0,
+ description = 'Detects bad content-transfer-encoding for text parts',
+ group = 'header'
+} \ No newline at end of file
diff --git a/rules/regexp/headers.lua b/rules/regexp/headers.lua
index 0258ab42e..12a2b6249 100644
--- a/rules/regexp/headers.lua
+++ b/rules/regexp/headers.lua
@@ -57,20 +57,6 @@ rspamd_config.MISSING_SUBJECT = {
end
}
--- Detects bad content-transfer-encoding for text parts
--- For text parts (text/plain and text/html mainly)
-local r_ctype_text = 'content_type_is_type(text)'
--- Content transfer encoding is 7bit
-local r_cte_7bit = 'compare_transfer_encoding(7bit)'
--- And body contains 8bit characters
-local r_body_8bit = '/[^\\x01-\\x7f]/Qr'
-reconf['R_BAD_CTE_7BIT'] = {
- re = string.format('(%s) & (%s) & (%s)', r_ctype_text, r_cte_7bit, r_body_8bit),
- score = 2.0,
- description = 'Detects bad content-transfer-encoding for text parts',
- group = 'header'
-}
-
-- Detects missing To header
reconf['MISSING_TO'] = {
re = '!raw_header_exists(To)',