Skip to content

Commit ae5f520

Browse files
authored
Merge pull request #1593 from topcoder-platform/PM-222_open-redirect
PM-222 handle open redirect issue
2 parents b571de1 + 04a3e22 commit ae5f520

File tree

2 files changed

+26
-33
lines changed

2 files changed

+26
-33
lines changed

src/config/constants.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ export const {
1919
CP_TRACK_ID,
2020
CHALLENGE_TYPE_ID,
2121
MARATHON_TYPE_ID,
22-
SEGMENT_API_KEY,
2322
MULTI_ROUND_CHALLENGE_TEMPLATE_ID,
2423
UNIVERSAL_NAV_URL,
2524
HEADER_AUTH_URLS_HREF,

src/index.js

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6,41 +6,35 @@ import ReactDOM from 'react-dom'
66
import './styles/main.scss'
77
import 'react-redux-toastr/lib/css/react-redux-toastr.min.css'
88
import App from './App'
9-
import { SEGMENT_API_KEY, UNIVERSAL_NAV_URL } from './config/constants'
9+
import { UNIVERSAL_NAV_URL } from './config/constants'
1010

1111
ReactDOM.render(<App />, document.getElementById('root'))
1212

13-
/* eslint-disable */
14-
if (!_.isEmpty(SEGMENT_API_KEY)) {
15-
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var t=analytics.methods[e];analytics[t]=analytics.factory(t)}analytics.load=function(e,t){var n=document.createElement("script");n.type="text/javascript";n.async=!0;n.src="https://cdn.segment.com/analytics.js/v1/"+e+"/analytics.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a);analytics._loadOptions=t};analytics.SNIPPET_VERSION="4.1.0";
16-
analytics.load(SEGMENT_API_KEY);
17-
analytics.page();
18-
}}();
19-
}
20-
/* eslint-enable */
21-
2213
// <!-- Start of topcoder Topcoder Universal Navigation script -->
23-
// eslint-disable-next-line no-unused-expressions
24-
!(function (n, t, e, a, c, i, o) {
25-
// eslint-disable-next-line no-unused-expressions, no-sequences
26-
;(n['TcUnivNavConfig'] = c),
27-
(n[c] =
28-
n[c] ||
29-
function () {
30-
;(n[c].q = n[c].q || []).push(arguments)
31-
}),
32-
(n[c].l = 1 * new Date())
14+
// SAST/open-redirect handling: make sure script hostname matches what we expect
15+
if ((new URL(UNIVERSAL_NAV_URL)).hostname.match(/uni-nav\.topcoder(-dev)?\.com$/i)) {
16+
// eslint-disable-next-line no-unused-expressions
17+
!(function (n, t, e, a, c, i, o) {
3318
// eslint-disable-next-line no-unused-expressions, no-sequences
34-
;(i = t.createElement(e)), (o = t.getElementsByTagName(e)[0])
35-
i.async = 1
36-
i.type = 'module'
37-
i.src = a
38-
o.parentNode.insertBefore(i, o)
39-
})(
40-
window,
41-
document,
42-
'script',
43-
UNIVERSAL_NAV_URL,
44-
'tcUniNav'
45-
)
19+
;(n['TcUnivNavConfig'] = c),
20+
(n[c] =
21+
n[c] ||
22+
function () {
23+
;(n[c].q = n[c].q || []).push(arguments)
24+
}),
25+
(n[c].l = 1 * new Date())
26+
// eslint-disable-next-line no-unused-expressions, no-sequences
27+
;(i = t.createElement(e)), (o = t.getElementsByTagName(e)[0])
28+
i.async = 1
29+
i.type = 'module'
30+
i.src = a
31+
o.parentNode.insertBefore(i, o)
32+
})(
33+
window,
34+
document,
35+
'script',
36+
UNIVERSAL_NAV_URL,
37+
'tcUniNav'
38+
)
39+
}
4640
// <!-- End of topcoder Topcoder Universal Navigation script -->

0 commit comments

Comments
 (0)