< All Topics
Print

איריס – רשימה שחורה/ לבנה

איך זה עבד עד היום:

כל ההודעות שנשלחות מאיריס, נשלחות ללא סינון או בדיקה האם איריס רשאית לשלוח את ההודעה ליעד.
לכן, כל ההודעות ללא יוצא מן הכלל היו נשלחות לכל היעדים המכותבים להודעה למרות שיש יעדים שלא אמורים לקבל את
ההודעות.

מה זה רשימה שחורה:

רשימה שחורה מאפשרת לחסום גישה או פעולה של גורמים מסוימים (כגון משתמשים, דומיינים, כתובות דוא"ל או מספרי טלפון) שמזוהים כבעייתיים או לא רצויים.
אחד היתרונות המשמעותיים של רשימה שחורה הוא,
שיפור חוויית המשתמש: הרשימה השחורה מונעת מהמערכת לשלוח הודעות (מיילים, SMS, ווטסאפ וכו') לרשומות שנמצאות בה. בכך היא מסייעת למנוע בעיות שעשויות להיווצר בעקבות חוקים ורגולציות שונות, כגון חוק הספאם.

יישום הרשימה השחורה באמצעות ביטויים רגולריים (Regex)
במערכת שלנו, הרשימה השחורה (והלבנה) מתבססות על ביטויים רגולריים (Regex) לזיהוי וחסימה של דומיינים, אימיילים ומספרי טלפון לא רצויים.
שיטה זו מאפשרת גמישות והתאמה אישית של הכללים, למשל:

  • חסימה של כל הכתובות עם דומיין מסוים (@spamdomain.com)
  • מניעת שליחת SMS למספרים שמתחילים ברצף מסוים (^9725)
  • חסימה של אימייל, מספר טלפון ספציפי וכו'

מה זה רשימה לבנה:

רשימה לבנה מגדירה לאיזה אימיילים/ מספרי טלפון ספציפים המערכת כן יכולה לשלוח אימיילים והודעות דוא"ל.
שימוש ברשימה לבנה מקטין את הסיכוי לטעויות אנוש, הגדרה ברורה של המערכת לאיזה לקוחות כן אפשר לשלוח הודעות מונע מאיריס לשלוח הודעות/ אימיילים לגורמים לא רצויים.

איך זה עובד?

כאשר מתבצעת שליחת הודעה/ אימייל באמצעות המערכת, מתבצע מעבר וסינון על כל האימיילים/ מספרי טלפון שמוגדרים כמען (במקרה של אימייל גם על כתובות שמוגדרים כCC וBCC) ובמידה ואחד מהמרשומות תואם לביטוי הRegex שמופיע ברשימה השחורה, המערכת תסיר את הכתובת/ מספר הטלפון מרשימה המענים ובכך תימנע שליחת הודעות/ אימייל לאותו מספר/ אימייל.

במידה וישנה לפחות רשומה אחת ברשימה לבנה המערכת תפעל לפי רשימה לבנה, במידה ואין רשומות ברשימה הלבנה המערכת לא תעבוד על בסיס רשימה לבנה ולא יתבצע סינון לאיזה רשומות כן ניתן לשלוח הודעות/ אימיילים אלא רק על רשומות מהרשימה השחורה (במידה והוגדרה).

השימוש ברשימה שחורה/ לבנה לא תלוי אחד בשני (כלומר לא חייב רשימה שחורה בשביל לעבוד עם רשימה לבנה ולהיפך) אבל, ניתן לעבוד עם רשימה לבנה ורשימה שחורה במקביל.

במידה וישנה רשומה שנמצאת גם ברשימה שחורה וגם ברשימה לבנה, הרשימה שחורה "מנצחת" כלומר, ההודעה לא תישלח.

איך זה נראה בפועל?

בשביל להוסיף רשומה לרשימה שחורה/ לבנה נשתמש באותה הבקשה (נשלח באמצעות בקשת HTTP דרך הSwagger-ניתן לשלוח יותר מרשומה אחת באותה הבקשה):

{
 "regex":"REGEX_CONDITION",
 "channelId":"####-####-####-####",
 "isBlackList":true/ false,
 "sender":"Some-string"
}

השוני היחידי בהזנה של רשומה לרשימה שחורה לעומת הזנה לרשימה לבנה הוא המאפיין: isBlackList.
במידה ומאפיין זה הוא true הערך שיוסף הוא לרשימה שחורה, במידה והמאפיין יהיה false הערך יתווסף לרשימה הלבנה.

כלומר במידה ונשלחה בקשה כזאת:
{
"regex": "[email protected]",
"channelId": "21k3-dpls-sc3k-cc2pq-d2el",
"isBlackList": true,
"sender": "Black-List"
}

הרשימה תירשם ברשימה השחורה.

במידה ונשלח את הבקשה הבאה:
{
"regex": "[email protected]",
"channelId": "21k3-dpls-sc3k-cc2pq-d2el",
"isBlackList": false,
"sender": "White-List"
}

הרשומה תירשם ברשימה הלבנה.

להלן תרשים זרימה המתאר את הבדיקות טרם השליחה:

כדי למנוע גישות ושליפות רבות מה-DB, אנו משתמשים בCACHE ששומר את השליפה הראשונה של רשימת הREGEXים למשך כ-60 שניות.

כל היעדים שהוסרו עקב בדיקת הימצאותם ברשימה השחורה או אי המצאותם ברשימה הלבנה, נכנסים לטבלה ב-DB בשם BLACKLISTLOGS, המכילה את העמודות: מספר ההודעה, מספר היעד שהוסר, סיבת ההסרה, והREGEX שגרם להסרה.

במידה והודעה נחסמה בעקבות רשימה שחורה/ לבנה סטטוס ההודעה יהיה 16 אך בתנאי שההודעה לא נשלחה לאף אחד מהמענים, במידה וכן – הסטטוס יהיה 3.
בטבלת BLACKLISTLOG במידה ומען התווסף בעקבות רשימה שחורה הסטטוס של הרשומה יהיה 14 ובמידה והמען נחסם בעקבות אי הימצאות ברשימה לבנה הסטטוס יהיה 15.

[
  {

    "key": 0,

    "value": "WaitingForQueue"

  },

  {

    "key": 1,

    "value": "Queued"

  },

  {

    "key": 2,

    "value": "Processing"

  },

  {

    "key": 3,

    "value": "Sent"

  },

  {

    "key": 4,

    "value": "Retry"

  },

  {

    "key": 5,

    "value": "Failed"

  },

  {

    "key": 7,

    "value": "Cancelled"

  },

  {

    "key": 8,

    "value": "SendToBackupChennal"

  },

  {

    "key": 9,

    "value": "Accepted"

  },

  {

    "key": 10,

    "value": "Delivered"

  },

  {

    "key": 11,

    "value": "TemporaryFail"

  },

  {

    "key": 12,

    "value": "PermanentFail"

  },

  {

    "key": 13,

    "value": "Complained"

  },

  {

    "key": 14,

    "value": "BlackList"

  },

  {

    "key": 15,

    "value": "NotInWhiteList"

  },

  {

    "key": 16,

    "value": "BlockedByBlackOrWhiteList"

  }

]
 
תוכן עיניינים