2014-10-21 1 views
3

CentOS에서 내 SpamAssassin 필터를 선명하게합니다. * .link와 .eu 도메인을 얻은 후에 나는 100 개가 넘는 문자로 된 매우 긴 도메인 문자열을 표시하고 싶습니다.SpamAssassin 긴 URL을 잡을 REGEX

조건은 다음과 같습니다 : HTTP 또는 HTTPS

  • 월에

    • 시작하거나,
    • 이 EOL, 라인 휴식 공간 ','로 끝 www가 포함되어 있지 않을 수 있습니다 <

    나는 이걸 생각해 냈다.

    body  LONG_URL (https?:\/\/)[^,;\"\'<\s$]{100,} 
    describe LONG_URL URL with over 100 characters 
    score LONG_URL 0.5 
    

    REGEX 테스터에서 작동하지만 SpamAssassin에서는 작동하지 않습니다.

  • +0

    제외 된 클래스에 달러 기호를 추가 하시겠습니까? URL에서 흔히있는 것은 아니지만 제외 할 특정 문자를 골라야하는 이상한 이유입니다. – tripleee

    답변

    1

    body이 아닌 uri test을 쓰고 싶습니다.

    +0

    URi는 URL에 www가있는 경우에만 작동합니까? 그러나 내 것이 작동하지 않기 때문에 나는 그것을 어쨌든 시도 할 것이다. – yello

    +0

    URi는 HTML로 래핑 된 URL 만 가능합니다. – yello

    +0

    수정 : URi가 .LINK TLD와 작동하지 않는 것 같습니다. .EU TLD와 정확히 똑같은 규칙이 잘 작동합니다. 내 URi EU TLD 규칙은 HTML 사용 여부와 상관없이 작동합니다. – yello

    1

    새로운 TLD 문제를 해결하려면 실제로 본문 규칙이 필요합니다. 위에서 작성한 것처럼 구문 문제와 불필요한 계산 비용이 있습니다. 대신보십시오 : 당신은 당신이 (100 자에서 바운드 유지 특히, 스팸이 아닌, 특히 마케팅 메일의 LOT에 발생 찾을 거라고 확신하지만

    body  YELLO_LONG_BODY_URL [email protected]\bhttps?://[^\"\'<\s$]{100}@i 
    describe YELLO_LONG_BODY_URL 100+ char URL, https://stackoverflow.com/a/26919318 
    score YELLO_LONG_BODY_URL 0.1 
    

    가 기술적으로 작동합니다 그것은 작습니다!). 내가 쉼표 & 것과 같은 세미콜론의 URL의 일부가 될 수 방금 [email protected]\bhttps?://\S{100}@i

    경고와 아마 괜찮아요 있도록 합법적 인 메시지는, 그 URL을 하나 개의 문자 너무 오래 같은 길이있을 것입니다을했다 : 나는 스팸 방지 생활을 위해 lots of 내 손끝에 있습니다. 128 자 미만의 스팸보다 더 많은 스팸 ("햄")을 공격합니다. 크기 범위가 스팸 : 험비 (ham ratio)가 엄청나 다. S/O, 일명 precision, 0.900은 가능하지만 실제로 1.000에 가까워지고 싶습니다. 테스트 한 결과, 가장 좋은 범위는 192-256 자 였지만 너무 약하다 (S/O = 0.862). 1024 자 (S/O = 0.057) 이상의 링크를 사용하는 스팸은 거의 없습니다.

    이 규칙의 이름을 변경했습니다. 규칙이 잘못되어 "신용"이 "비난"될 때 (상류 SpamAssassin의 것보다) 쉽게 식별 할 수 있도록 규칙에 대한 크레디트를 얻는 것이 좋습니다 ... 또한이 답변을 규칙 설명에 연결하여 사용자 더 많은 것을 배울 수 있습니다.

    +0

    답장을 보내 주셔서 감사합니다. 그동안 문제는 사라진 것처럼 보입니다. 스팸 발송자가 잠시 동안 뭔가를 시도한 것으로 보이며 삭제율이 너무 높아질 때 다른 것을 시도해보십시오. 나를 위해 큰 변화를 일으킨 것은 포스트그레이 (회색 목록)를 추가하는 것이 었습니다. 대성공! wiki.centos.org/HowTos/postgrey – yello