diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/WhatsappEmbeddedSignup.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/WhatsappEmbeddedSignup.vue index b2b4a60cd..7022bc779 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/WhatsappEmbeddedSignup.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/channels/WhatsappEmbeddedSignup.vue @@ -124,7 +124,14 @@ export default { handleSignupMessage(event) { // Handle Facebook embedded signup message events - if (!event.origin.endsWith('facebook.com')) return; + try { + const originUrl = new URL(event.origin); + const allowedHosts = ['facebook.com', 'www.facebook.com']; + if (!allowedHosts.includes(originUrl.hostname)) return; + } catch (error) { + // Invalid origin URL, reject the event + return; + } try { const data = JSON.parse(event.data); diff --git a/app/services/whatsapp/embedded_signup_service.rb b/app/services/whatsapp/embedded_signup_service.rb index 49c02d982..674d3f6ae 100644 --- a/app/services/whatsapp/embedded_signup_service.rb +++ b/app/services/whatsapp/embedded_signup_service.rb @@ -149,11 +149,13 @@ class Whatsapp::EmbeddedSignupService def generate_inbox_name(waba_info, phone_info) business_name = waba_info[:business_name] || phone_info[:business_name] + sanitized_business_name = business_name.present? ? "[redacted]" : nil + sanitized_phone_number = phone_info[:phone_number].present? ? "[redacted]" : nil - if business_name.present? - "#{business_name} WhatsApp" + if sanitized_business_name.present? + "#{sanitized_business_name} WhatsApp" else - "WhatsApp (#{phone_info[:phone_number]})" + "WhatsApp (#{sanitized_phone_number})" end end