📄 local.sco
字号:
# Anti-Spam score file# required_score 5.0# Start of geneaated scores. <gen:mutable># ********************************************************************************# 1. body tests --> 20_body_tests.cf# ********************************************************************************body TRACKER_ID /^[a-z0-9]{6,24}[-_a-z0-9]{12,36}[a-z0-9]{6,24}\s*\z/isdescribe TRACKER_ID Incorporates a tracking ID numberbody WEIRD_QUOTING /[\042\223\224\262\263\271]{2}\S{0,16}[\042\223\224\262\263\271]{2}/describe WEIRD_QUOTING Weird repeated double-quotation marksbody EMAIL_ROT13 /\b[a-z(\]-]+\^[a-z-]+\([a-z]{2,3}\b/describe EMAIL_ROT13 Body contains a ROT13-encoded email addressrawbody INTERRUPTUS /(?:[a-zA-Z0-9]<[\/ ]{0,2}?(?!br)(?!p)(?!sup)(?!li)(?!b)(?!i)(?!option)(?!a (?:href|name))(?:\b|!--)[^>]{0,64}?>[a-zA-Z0-9].{0,64}){3}/idescribe INTERRUPTUS Message looks to contain HTML-interrupted textrawbody MIME_BASE64_BLANKS eval:check_for_mime('mime_base64_blanks')describe MIME_BASE64_BLANKS Extra blank lines in base64 encodingrawbody MIME_BASE64_NO_NAME eval:check_for_mime('mime_base64_no_name')describe MIME_BASE64_NO_NAME base64 attachment does not have a file namebody MIME_BAD_ISO_CHARSET eval:check_for_mime('mime_bad_iso_charset')describe MIME_BAD_ISO_CHARSET MIME character set is an unknown ISO charsetrawbody MIME_QP_LONG_LINE eval:check_for_mime('mime_qp_long_line')describe MIME_QP_LONG_LINE Quoted-printable line longer than 76 charsrawbody MIME_BASE64_TEXT eval:check_for_mime('mime_base64_encoded_text')describe MIME_BASE64_TEXT Message text disguised using base64 encodingrawbody MIME_MISSING_BOUNDARY eval:check_for_mime('mime_missing_boundary')describe MIME_MISSING_BOUNDARY MIME section missing boundarybody MISSING_MIME_HB_SEP eval:check_msg_parse_flags('missing_mime_head_body_separator')describe MISSING_MIME_HB_SEP Missing blank line between MIME header and bodybody MIME_HTML_MOSTLY eval:check_mime_multipart_ratio('0.00','0.01')describe MIME_HTML_MOSTLY Multipart message mostly text/html MIMEbody MIME_HTML_ONLY eval:check_for_mime_html_only()describe MIME_HTML_ONLY Message only has text/html MIME partsbody MPART_ALT_DIFF eval:multipart_alternative_difference('99', '100')describe MPART_ALT_DIFF HTML and text parts are differentbody MPART_ALT_DIFF_COUNT eval:multipart_alternative_difference_count('3', '1')describe MPART_ALT_DIFF_COUNT HTML and text parts are differentbody CHARSET_FARAWAY eval:check_for_faraway_charset()describe CHARSET_FARAWAY Character set indicates a foreign languagetflags CHARSET_FARAWAY userconfbody BLANK_LINES_70_80 eval:check_blank_line_ratio('70','80','4')describe BLANK_LINES_70_80 Message body has 70-80% blank linesbody BLANK_LINES_80_90 eval:check_blank_line_ratio('80','90','4')describe BLANK_LINES_80_90 Message body has 80-90% blank linesbody BLANK_LINES_90_100 eval:check_blank_line_ratio('90','100','4')describe BLANK_LINES_90_100 Message body has 90-100% blank linesbody UNIQUE_WORDS eval:check_unique_words('0.946', '3.1')describe UNIQUE_WORDS Message body has many words used only oncebody DOMAIN_RATIO eval:check_domain_ratio('0.022')describe DOMAIN_RATIO Message body mentions many internet domainsbody HTTPS_IP_MISMATCH eval:check_https_ip_mismatch()describe HTTPS_IP_MISMATCH IP to HTTPS link found in HTML# ********************************************************************************# 2. compensation for common false positives --> 20_compensate.cf# ********************************************************************************# The message was never sent via an untrustworthy host.header ALL_TRUSTED eval:check_all_trusted()describe ALL_TRUSTED Passed through trusted hosts only via SMTPtflags ALL_TRUSTED niceheader NO_RELAYS eval:check_no_relays()tflags NO_RELAYS nice userconfdescribe NO_RELAYS Informational: message was not relayed via SMTP#********************************************************************************# 4. drug tests --> 20_drugs.cf#********************************************************************************header SUBJECT_DRUG_GAP_C Subject =~ /\bc.{0,2}i.{0,2}a.{0,2}l.{0,2}i.{0,2}s\b/idescribe SUBJECT_DRUG_GAP_C Subject contains a gappy version of 'cialis'header SUBJECT_DRUG_GAP_L Subject =~ /l.{0,2}e.{0,2}v.{0,2}i.{0,2}t.{0,2}r.{0,2}a/idescribe SUBJECT_DRUG_GAP_L Subject contains a gappy version of 'levitra'header SUBJECT_DRUG_GAP_P Subject =~ /p.{0,2}h.{0,6}t.{0,2}e.{0,2}r.{0,2}m/idescribe SUBJECT_DRUG_GAP_P Subject contains a gappy version of 'phentermine'header SUBJECT_DRUG_GAP_S Subject =~ /\bs.{0,1}o.{0,1}m.{0,1}a\b/idescribe SUBJECT_DRUG_GAP_S Subject contains a gappy version of 'soma'header SUBJECT_DRUG_GAP_VA Subject =~ /v.{0,2}a.{0,2}l.{0,2}i.{0,2}u.{0,2}m/idescribe SUBJECT_DRUG_GAP_VA Subject contains a gappy version of 'valium'header SUBJECT_DRUG_GAP_VIC Subject =~ /v.{0,2}i.{0,2}c.{0,2}[0o].{0,2}d.{0,2}i.{0,2}n/idescribe SUBJECT_DRUG_GAP_VIC Subject contains a gappy version of 'vicodin'header SUBJECT_DRUG_GAP_X Subject =~ /x.{0,2}a.{0,2}n.{0,2}a.{0,2}x/idescribe SUBJECT_DRUG_GAP_X Subject contains a gappy version of 'xanax'body DRUG_DOSAGE m{[\d\.]+ *\$? *(?:[\\/]|per) *d.?o.?s.?e}idescribe DRUG_DOSAGE Talks about price per dosebody DRUG_ED_CAPS /\bCIALIS|LEVITRA|VIAGRA/describe DRUG_ED_CAPS Mentions an E.D. drugbody DRUG_ED_COMBO /\bviagra .{0,15}(?:phentermine|xenical|tenuate|zyban|propecia)\b/idescribe DRUG_ED_COMBO Viagra and other drugsbody DRUG_ED_SILD /\bsildenafil\b/idescribe DRUG_ED_SILD Talks about an E.D. drug using its chemical namebody DRUG_ED_GENERIC /Generic Viagra/describe DRUG_ED_GENERIC Mentions Generic Viagrabody DRUG_ED_ONLINE /\bviagra .{0,25}(?:express|online|overnight)/idescribe DRUG_ED_ONLINE Fast Viagra Delivery body DEEP_DISC_MEDS /\bdeep discount med(?:s|ications)\b/idescribe DEEP_DISC_MEDS Deep discount medicationsbody ONLINE_PHARMACY /\bonline pharmacy|\b(?:drugs|medications) online/idescribe ONLINE_PHARMACY Online Pharmacybody NO_PRESCRIPTION /no.{1,10}P(?:er|re)scription.{1,10}(?:needed|require|necessary)/idescribe NO_PRESCRIPTION No prescription neededbody VIA_GAP_GRA /\bvia.gra\b/idescribe VIA_GAP_GRA Attempts to disguise the word 'viagra'body DRUGS_SMEAR1 /(?:Viagra|Valium|Xanax|Soma|Cialis){2}/idescribe DRUGS_SMEAR1 Two or more drugs crammed together into one word#********************************************************************************# 6. header tests --> 20_head_tests.cf#********************************************************************************header HEAD_LONG eval:check_msg_parse_flags('truncated_header')describe HEAD_LONG Message headers are very longheader MISSING_HB_SEP eval:check_msg_parse_flags('missing_head_body_separator')describe MISSING_HB_SEP Missing blank line between message header and bodyheader UNPARSEABLE_RELAY eval:check_relays_unparseable()tflags UNPARSEABLE_RELAY userconfdescribe UNPARSEABLE_RELAY Informational: message has unparseable relay linesheader DATE_IN_PAST_03_06 eval:check_for_shifted_date('-6', '-3')describe DATE_IN_PAST_03_06 Date: is 3 to 6 hours before Received: dateheader DATE_IN_PAST_06_12 eval:check_for_shifted_date('-12', '-6')describe DATE_IN_PAST_06_12 Date: is 6 to 12 hours before Received: dateheader DATE_IN_PAST_12_24 eval:check_for_shifted_date('-24', '-12')describe DATE_IN_PAST_12_24 Date: is 12 to 24 hours before Received: dateheader DATE_IN_PAST_24_48 eval:check_for_shifted_date('-48', '-24')describe DATE_IN_PAST_24_48 Date: is 24 to 48 hours before Received: dateheader DATE_IN_PAST_48_96 eval:check_for_shifted_date('-96', '-48')describe DATE_IN_PAST_48_96 Date: is 48 to 96 hours before Received: dateheader DATE_IN_PAST_96_XX eval:check_for_shifted_date('undef', '-96')describe DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: dateheader DATE_IN_FUTURE_03_06 eval:check_for_shifted_date('3', '6')describe DATE_IN_FUTURE_03_06 Date: is 3 to 6 hours after Received: dateheader DATE_IN_FUTURE_06_12 eval:check_for_shifted_date('6', '12')describe DATE_IN_FUTURE_06_12 Date: is 6 to 12 hours after Received: dateheader DATE_IN_FUTURE_12_24 eval:check_for_shifted_date('12', '24')describe DATE_IN_FUTURE_12_24 Date: is 12 to 24 hours after Received: dateheader DATE_IN_FUTURE_24_48 eval:check_for_shifted_date('24', '48')describe DATE_IN_FUTURE_24_48 Date: is 24 to 48 hours after Received: dateheader DATE_IN_FUTURE_48_96 eval:check_for_shifted_date('48', '96')describe DATE_IN_FUTURE_48_96 Date: is 48 to 96 hours after Received: dateheader DATE_IN_FUTURE_96_XX eval:check_for_shifted_date('96', 'undef')describe DATE_IN_FUTURE_96_XX Date: is 96 hours or more after Received: dateheader UNRESOLVED_TEMPLATE eval:check_unresolved_template()describe UNRESOLVED_TEMPLATE Headers contain an unresolved templateheader SUBJ_ILLEGAL_CHARS eval:check_illegal_chars('Subject','0.00','2')describe SUBJ_ILLEGAL_CHARS Subject: has too many raw illegal charactersheader FROM_ILLEGAL_CHARS eval:check_illegal_chars('From','0.20','2')describe FROM_ILLEGAL_CHARS From: has too many raw illegal charactersheader HEAD_ILLEGAL_CHARS eval:check_illegal_chars('ALL','0.010','2')describe HEAD_ILLEGAL_CHARS Headers have too many raw illegal charactersheader SUBJ_HAS_UNIQ_ID eval:check_for_unique_subject_id()describe SUBJ_HAS_UNIQ_ID Subject contains a unique IDheader MSGID_FROM_MTA_ID eval:message_id_from_mta()describe MSGID_FROM_MTA_ID Message-Id for external message added locallyheader FROM_AND_TO_SAME eval:check_for_from_to_same()describe FROM_AND_TO_SAME From and To are the same, but not exactlyheader FORGED_RCVD_HELO eval:check_for_forged_received_helo()describe FORGED_RCVD_HELO Received: contains a forged HELOheader RCVD_HELO_IP_MISMATCH eval:helo_ip_mismatch()describe RCVD_HELO_IP_MISMATCH Received: HELO and IP do not match, but shouldheader RCVD_NUMERIC_HELO eval:check_for_numeric_helo()describe RCVD_NUMERIC_HELO Received: contains an IP address used for HELOheader RCVD_ILLEGAL_IP eval:check_for_illegal_ip()describe RCVD_ILLEGAL_IP Received: contains illegal IP addressheader FORGED_AOL_RCVD eval:check_for_fake_aol_relay_in_rcvd()describe FORGED_AOL_RCVD Received forged, contains fake AOL relaysheader SUBJ_ALL_CAPS eval:subject_is_all_caps()describe SUBJ_ALL_CAPS Subject is all capitalsheader FORGED_YAHOO_RCVD eval:check_for_forged_yahoo_received_headers()describe FORGED_YAHOO_RCVD 'From' yahoo.com does not match 'Received' headersheader FORGED_JUNO_RCVD eval:check_for_forged_juno_received_headers()describe FORGED_JUNO_RCVD 'From' juno.com does not match 'Received' headersheader FORGED_GW05_RCVD eval:check_for_forged_gw05_received_headers()describe FORGED_GW05_RCVD Forged 'by gw05' 'Received:' header foundheader CHARSET_FARAWAY_HEADER eval:check_for_faraway_charset_in_headers()describe CHARSET_FARAWAY_HEADER A foreign language charset used in headerstflags CHARSET_FARAWAY_HEADER userconf# this is a quite common false positive, as it's legal to remove a To but leave# a CC. so don't score it high.header MISSING_HEADERS eval:check_for_missing_to_header()describe MISSING_HEADERS Missing To: headerheader SUSPICIOUS_RECIPS eval:similar_recipients('0.65','undef')describe SUSPICIOUS_RECIPS Similar addresses in recipient listheader SORTED_RECIPS eval:sorted_recipients()describe SORTED_RECIPS Recipient list is sorted by addressheader ADDRESS_IN_SUBJECT eval:check_for_to_in_subject('address')describe ADDRESS_IN_SUBJECT To: address appears in Subjectheader LOCALPART_IN_SUBJECT eval:check_for_to_in_subject('user')describe LOCALPART_IN_SUBJECT Local part of To: address appears in Subjectheader HEADER_COUNT_CTYPE eval:check_header_count_range('Content-Type','2','999')describe HEADER_COUNT_CTYPE Multiple Content-Type headers foundheader NO_RDNS_DOTCOM_HELO eval:check_for_no_rdns_dotcom_helo()describe NO_RDNS_DOTCOM_HELO Host HELO'd as a big ISP, but had no rDNSheader FRAGMENTED_MESSAGE Content-Type =~ /\bmessage\/partial/idescribe FRAGMENTED_MESSAGE Partial message# a forged Hotmail message; host HELO'd as hotmail.com, but it wasn'theader FORGED_HOTMAIL_RCVD eval:check_for_forged_hotmail_received_headers()describe FORGED_HOTMAIL_RCVD Forged hotmail.com 'Received:' header foundheader NO_REAL_NAME From =~ /^["\s]*\<?\S+\@\S+\>?\s*$/describe NO_REAL_NAME From: does not include a real nameheader FROM_BLANK_NAME From =~ /(?:\s|^)"" <\S+>/idescribe FROM_BLANK_NAME From: contains empty nameheader FROM_ENDS_IN_NUMS From:addr =~ /\D\d{8,}\@/idescribe FROM_ENDS_IN_NUMS From: ends in many numbers
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -