Я на 99,99% уверен, что раньше этот набор правил работал нормально, но начал выдавать ошибки, если метаправило в конце раскомментировано. Похоже, это связано с двигателем, поскольку это происходит во многих местах.
В результате ошибка, когда я lint:
Sep 10 09:42:41.113 [3984] warn: config: Strange rule token: 0.01039
Sep 10 09:42:42.031 [3984] warn: lint: 1 issues detected, please rerun with debug enabled for more information
Может ли кто-нибудь помочь мне сказать, почему?
body DG_CHINAREGSCAM2a /we.received.an.application/i
describe DG_CHINAREGSCAM2a Words commonly used by China Scammers
score DG_CHINAREGSCAM2a 0.01040
body DG_CHINAREGSCAM2b /their internet keyword/i
describe DG_CHINAREGSCAM2b Words commonly used by China Scammers
score DG_CHINAREGSCAM2b 0.01041
body DG_CHINAREGSCAM2c /China(.*)domain name/i
describe DG_CHINAREGSCAM2c Words commonly used by China Scammers
score DG_CHINAREGSCAM2c 0.01042
body DG_CHINAREGSCAM2d /necessary.to.send.email.to.you/i
describe DG_CHINAREGSCAM2d Words commonly used by China Scammers
score DG_CHINAREGSCAM2d 0.01043
body DG_CHINAREGSCAM2e /company is associated with your company or not/i
describe DG_CHINAREGSCAM2e Words commonly used by China Scammers
score DG_CHINAREGSCAM2e 0.01044
body DG_CHINAREGSCAM2f /conflicts.with.your.company/i
describe DG_CHINAREGSCAM2f Words commonly used by China Scammers
score DG_CHINAREGSCAM2f 0.01045
#meta DG_CHINAREGSCAM2 (( DG_CHINAREGSCAM2a + DG_CHINAREGSCAM2b + DG_CHINAREGSCAM2c + DG_CHINAREGSCAM2d + DG_CHINAREGSCAM2e + DG_CHINAREGSCAM2f) > 0.01039 )
#score DG_CHINAREGSCAM2 3
#describe DG_CHINAREGSCAM2 Email identified as China Registry Scam
В данном конкретном случае я обошел эту проблему правила, изменив модель + / score на использование "||" при совпадении любых правил, но это не сработает во всех случаях.
Есть ли решение этой проблемы или очевидная причина, по которой я не вижу?
Линтер предлагает использовать в арифметических метаправилах кратные, а не дроби.
Я считаю, что ваши правила в любом случае работают ... просто нет необходимости использовать что-либо, кроме простых целых чисел, и потенциально подразумевает ошибку при написании правила, см. Ниже. Укажите количество совпадений, которые вы хотите выполнить (например, 2), и примените веса путем умножения, если необходимо, например:
meta DG_CHINAREGSCAM2 (( 7*DG_CHINAREGSCAM2a + 7*DG_CHINAREGSCAM2b + 7*DG_CHINAREGSCAM2c + 4*DG_CHINAREGSCAM2d + 4*DG_CHINAREGSCAM2e + 3*DG_CHINAREGSCAM2f) > 10 )
Это может выглядеть как его арифметика на прикрепленном score
из остальных тестов - нет. Каждая ссылка на другие тесты считается кратной 1:
мета SYMBOLIC_TEST_NAME логическое арифметическое выражение
Can also define an arithmetic expression in terms of other tests, with an unhit test having the value "0" and a hit test having a nonzero value. The value of a hit meta test is that of its arithmetic expression. The value of a hit eval test is that returned by its method. The value of a hit header, body, rawbody, uri, or full test which has the "multiple" tflag is the number of times the test hit. The value of any other type of hit test is "1".