mirror of
https://github.com/sasjs/server.git
synced 2026-01-04 21:30:05 +00:00
chore: helmet config cleanup
This commit is contained in:
@@ -17,6 +17,7 @@ import {
|
||||
setProcessVariables,
|
||||
setupFolders
|
||||
} from './utils'
|
||||
import { getEnvCSPDirectives } from './utils/parseHelmetConfig'
|
||||
|
||||
dotenv.config()
|
||||
|
||||
@@ -25,7 +26,8 @@ const app = express()
|
||||
app.use(cookieParser())
|
||||
app.use(morgan('tiny'))
|
||||
|
||||
const { MODE, CORS, WHITELIST, PROTOCOL, CSP_DISABLE } = process.env
|
||||
const { MODE, CORS, WHITELIST, PROTOCOL, HELMET_CSP_CONFIG_PATH, HELMET_COEP } =
|
||||
process.env
|
||||
|
||||
export const cookieOptions = {
|
||||
secure: PROTOCOL === 'https',
|
||||
@@ -33,6 +35,10 @@ export const cookieOptions = {
|
||||
maxAge: 24 * 60 * 60 * 1000 // 24 hours
|
||||
}
|
||||
|
||||
const cspConfigJson = getEnvCSPDirectives(HELMET_CSP_CONFIG_PATH)
|
||||
const coepFlag =
|
||||
HELMET_COEP === 'true' || HELMET_COEP === undefined ? true : false
|
||||
|
||||
/***********************************
|
||||
* CSRF Protection *
|
||||
***********************************/
|
||||
@@ -41,18 +47,17 @@ export const csrfProtection = csrf({ cookie: cookieOptions })
|
||||
/***********************************
|
||||
* Handle security and origin *
|
||||
***********************************/
|
||||
if (CSP_DISABLE !== 'true') {
|
||||
app.use(
|
||||
helmet({
|
||||
contentSecurityPolicy: {
|
||||
directives: {
|
||||
...helmet.contentSecurityPolicy.getDefaultDirectives(),
|
||||
'script-src': ["'self'", "'unsafe-inline'"]
|
||||
}
|
||||
app.use(
|
||||
helmet({
|
||||
contentSecurityPolicy: {
|
||||
directives: {
|
||||
...helmet.contentSecurityPolicy.getDefaultDirectives(),
|
||||
...cspConfigJson
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
},
|
||||
crossOriginEmbedderPolicy: coepFlag
|
||||
})
|
||||
)
|
||||
|
||||
/***********************************
|
||||
* Enabling CORS *
|
||||
|
||||
Reference in New Issue
Block a user