diff options
author | Matthew Miller <matthew@millerti.me> | 2020-05-23 09:33:11 -0700 |
---|---|---|
committer | Matthew Miller <matthew@millerti.me> | 2020-05-23 09:33:11 -0700 |
commit | 05898eab426245a855236c0899c7e3a60a6c5622 (patch) | |
tree | 4fbec8a96cb2ae9feec27cb6ab12b0f37d01051d /packages/server/src | |
parent | bdcd0a111744ccc1f3df6dcf059ae43bc3e070e6 (diff) |
Ensure assertion origin starts with “https://“
Diffstat (limited to 'packages/server/src')
-rw-r--r-- | packages/server/src/assertion/verifyAssertionResponse.test.ts | 10 | ||||
-rw-r--r-- | packages/server/src/assertion/verifyAssertionResponse.ts | 6 |
2 files changed, 15 insertions, 1 deletions
diff --git a/packages/server/src/assertion/verifyAssertionResponse.test.ts b/packages/server/src/assertion/verifyAssertionResponse.test.ts index 99e87d2..848acee 100644 --- a/packages/server/src/assertion/verifyAssertionResponse.test.ts +++ b/packages/server/src/assertion/verifyAssertionResponse.test.ts @@ -26,6 +26,16 @@ test('should verify an assertion response', () => { expect(verification.verified).toEqual(true); }); +test('should verify an assertion response if origin does not start with https', () => { + const verification = verifyAssertionResponse( + assertionResponse, + 'dev.dontneeda.pw', + authenticator, + ); + + expect(verification.verified).toEqual(true); +}); + test('should return authenticator info after verification', () => { const verification = verifyAssertionResponse( assertionResponse, diff --git a/packages/server/src/assertion/verifyAssertionResponse.ts b/packages/server/src/assertion/verifyAssertionResponse.ts index a3b631b..015c467 100644 --- a/packages/server/src/assertion/verifyAssertionResponse.ts +++ b/packages/server/src/assertion/verifyAssertionResponse.ts @@ -28,9 +28,13 @@ export default function verifyAssertionResponse( const { type, origin } = clientDataJSON; + if (!expectedOrigin.startsWith('https://')) { + expectedOrigin = `https://${expectedOrigin}`; + } + // Check that the origin is our site if (origin !== expectedOrigin) { - throw new Error(`Unexpected assertion origin: ${origin}`); + throw new Error(`Unexpected assertion origin "${origin}", expected "${expectedOrigin}"`); } // Make sure we're handling an assertion |