Skip to content

Commit

Permalink
🛂 Enable allowed origins security to depreceated sendMessage endpoints
Browse files Browse the repository at this point in the history
  • Loading branch information
baptisteArno committed Jan 19, 2024
1 parent 29bd5f1 commit b438c17
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 2 deletions.
30 changes: 29 additions & 1 deletion apps/viewer/src/features/chat/api/legacy/sendMessageV1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const sendMessageV1 = publicProcedure
.mutation(
async ({
input: { sessionId, message, startParams, clientLogs },
ctx: { user },
ctx: { user, origin, res },
}) => {
const session = sessionId ? await getSession(sessionId) : null

Expand Down Expand Up @@ -104,6 +104,21 @@ export const sendMessageV1 = publicProcedure
message,
})

if (startParams.isPreview || typeof startParams.typebot !== 'string') {
if (
newSessionState.allowedOrigins &&
newSessionState.allowedOrigins.length > 0
) {
if (origin && newSessionState.allowedOrigins.includes(origin))
res.setHeader('Access-Control-Allow-Origin', origin)
else
res.setHeader(
'Access-Control-Allow-Origin',
newSessionState.allowedOrigins[0]
)
}
}

const allLogs = clientLogs ? [...(logs ?? []), ...clientLogs] : logs

const session = startParams?.isOnlyRegistering
Expand Down Expand Up @@ -137,6 +152,19 @@ export const sendMessageV1 = publicProcedure
clientSideActions,
}
} else {
if (
session.state.allowedOrigins &&
session.state.allowedOrigins.length > 0
) {
if (origin && session.state.allowedOrigins.includes(origin))
res.setHeader('Access-Control-Allow-Origin', origin)
else
res.setHeader(
'Access-Control-Allow-Origin',
session.state.allowedOrigins[0]
)
}

const {
messages,
input,
Expand Down
29 changes: 28 additions & 1 deletion apps/viewer/src/features/chat/api/legacy/sendMessageV2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const sendMessageV2 = publicProcedure
.mutation(
async ({
input: { sessionId, message, startParams, clientLogs },
ctx: { user },
ctx: { user, res, origin },
}) => {
const session = sessionId ? await getSession(sessionId) : null

Expand Down Expand Up @@ -104,6 +104,21 @@ export const sendMessageV2 = publicProcedure
message,
})

if (startParams.isPreview || typeof startParams.typebot !== 'string') {
if (
newSessionState.allowedOrigins &&
newSessionState.allowedOrigins.length > 0
) {
if (origin && newSessionState.allowedOrigins.includes(origin))
res.setHeader('Access-Control-Allow-Origin', origin)
else
res.setHeader(
'Access-Control-Allow-Origin',
newSessionState.allowedOrigins[0]
)
}
}

const allLogs = clientLogs ? [...(logs ?? []), ...clientLogs] : logs

const session = startParams?.isOnlyRegistering
Expand Down Expand Up @@ -137,6 +152,18 @@ export const sendMessageV2 = publicProcedure
clientSideActions,
}
} else {
if (
session.state.allowedOrigins &&
session.state.allowedOrigins.length > 0
) {
if (origin && session.state.allowedOrigins.includes(origin))
res.setHeader('Access-Control-Allow-Origin', origin)
else
res.setHeader(
'Access-Control-Allow-Origin',
session.state.allowedOrigins[0]
)
}
const {
messages,
input,
Expand Down

0 comments on commit b438c17

Please sign in to comment.