File tree Expand file tree Collapse file tree 2 files changed +9
-4
lines changed
dotcom-rendering/src/server Expand file tree Collapse file tree 2 files changed +9
-4
lines changed Original file line number Diff line number Diff line change 11import type { Handler } from 'express' ;
22import { validateAsFEArticle } from '../../../src/model/validate' ;
33
4- export const addQueryParamsToABTests : Handler = async ( req , res , next ) => {
4+ export const getABTestsFromQueryParams : Handler = async ( req , res , next ) => {
55 try {
66 const frontendData = validateAsFEArticle ( req . body ) ;
77
88 const { config } = frontendData ;
99
1010 const queryParamsAb = req . query ;
1111
12+ const SAFE_KEY = / ^ [ a - z A - Z 0 - 9 _ - ] { 1 , 100 } $ / ;
13+ const SAFE_VALUE = / ^ [ a - z A - Z 0 - 9 _ - ] { 1 , 40 } $ / ;
14+
1215 const filteredQuery : Record < string , string > = { } ;
1316 for ( const [ key , value ] of Object . entries ( queryParamsAb ) ) {
1417 if ( typeof value == 'string' && key . startsWith ( 'ab-' ) ) {
1518 const testId = key . replace ( / ^ a b - / , '' ) ;
16- filteredQuery [ testId ] = value ;
19+ if ( SAFE_VALUE . test ( value ) && SAFE_KEY . test ( key ) ) {
20+ filteredQuery [ testId ] = value ;
21+ }
1722 }
1823 }
1924
Original file line number Diff line number Diff line change @@ -20,7 +20,7 @@ import {
2020 handleFootballMatchPage ,
2121 handleFootballTablesPage ,
2222} from './handler.sportDataPage.web' ;
23- import { addQueryParamsToABTests } from './lib/add-queryparams-to-abtests' ;
23+ import { getABTestsFromQueryParams } from './lib/add-queryparams-to-abtests' ;
2424import { getContentFromURLMiddleware } from './lib/get-content-from-url' ;
2525
2626/** article URLs contain a part that looks like “2022/nov/25” */
@@ -90,7 +90,7 @@ const renderer = Router();
9090// populates req.body with the content data from a production
9191// URL if req.params.url is present
9292renderer . use ( getContentFromURLMiddleware ) ;
93- renderer . use ( addQueryParamsToABTests ) ;
93+ renderer . use ( getABTestsFromQueryParams ) ;
9494renderer . get ( '/Article/*url' , handleArticle ) ;
9595renderer . get ( '/Interactive/*url' , handleInteractive ) ;
9696renderer . get ( '/Blocks/*url' , handleBlocks ) ;
You can’t perform that action at this time.
0 commit comments