From 40ec79e74cdb206e64b2bacb1f06ff18f3464732 Mon Sep 17 00:00:00 2001 From: Ryan Ahearn Date: Fri, 3 Mar 2023 15:27:00 -0500 Subject: [PATCH] Only use service sender value if it is valid for SNS OriginationNumber --- app/clients/sms/aws_sns.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/clients/sms/aws_sns.py b/app/clients/sms/aws_sns.py index 36ebbddfe..3f57c44c3 100644 --- a/app/clients/sms/aws_sns.py +++ b/app/clients/sms/aws_sns.py @@ -1,3 +1,4 @@ +import re from time import monotonic import botocore @@ -23,6 +24,7 @@ class AwsSnsClient(SmsClient): super(SmsClient, self).__init__(*args, **kwargs) self.current_app = current_app self.statsd_client = statsd_client + self._valid_sender_regex = re.compile(r"^\+?\d{5,14}$") @property def name(self): @@ -31,6 +33,9 @@ class AwsSnsClient(SmsClient): def get_name(self): return self.name + def _valid_sender_number(self, sender): + return sender and re.match(self._valid_sender_regex, sender) + def send_sms(self, to, content, reference, sender=None, international=False): matched = False @@ -47,7 +52,7 @@ class AwsSnsClient(SmsClient): } } - if sender: + if self._valid_sender_number(sender): attributes["AWS.MM.SMS.OriginationNumber"] = { "DataType": "String", "StringValue": sender,