File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11const fs = require ( 'fs' ) ;
2+ const glob = require ( 'glob' ) ;
23const path = require ( 'path' ) ;
34
5+ const { secret} = require ( '../../config' ) ;
6+
47const staticAssets = [ path . join ( __dirname , '../assets/index.html' ) ] ;
58
69const configFiles = [ path . join ( __dirname , '../../config.js' ) ] ;
@@ -17,6 +20,20 @@ const doFilesExist = (files) => {
1720 }
1821} ;
1922
23+ const grepRecursive = ( folder , match ) => {
24+ return glob . sync ( folder . concat ( '/**/*' ) ) . some ( ( file ) => {
25+ try {
26+ if ( ! fs . lstatSync ( file ) . isDirectory ( ) ) {
27+ return fs . readFileSync ( file , { encoding : 'utf8' } ) . includes ( match ) ;
28+ }
29+ return false ;
30+ } catch ( error ) {
31+ console . error ( `Error reading file: ${ file } \n${ error } ` ) ;
32+ return false ;
33+ }
34+ } ) ;
35+ } ;
36+
2037const enforcePrerequisites = ( ) =>
2138 new Promise ( ( resolve , reject ) => {
2239 if ( ! doFilesExist ( configFiles ) ) {
@@ -33,6 +50,12 @@ const enforcePrerequisites = () =>
3350 return ;
3451 }
3552
53+ // Ensures that server secret is not served to user
54+ if ( grepRecursive ( path . join ( __dirname , '../assets' ) , secret ) ) {
55+ reject ( new Error ( `Secret is included in static assets. Please ensure that secret is unique.` ) ) ;
56+ return ;
57+ }
58+
3659 return resolve ( ) ;
3760 } ) ;
3861
You can’t perform that action at this time.
0 commit comments