| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | /* global WIKI *//** * Security Middleware * * @param      {Express Request}   req     Express request object * @param      {Express Response}  res     Express response object * @param      {Function}          next    next callback function * @return     {any}               void */module.exports = function (req, res, next) {  // -> Disable X-Powered-By  req.app.disable('x-powered-by')  // -> Disable Frame Embedding  if (WIKI.config.security.securityIframe) {    res.set('X-Frame-Options', 'deny')  }  // -> Re-enable XSS Fitler if disabled  res.set('X-XSS-Protection', '1; mode=block')  // -> Disable MIME-sniffing  res.set('X-Content-Type-Options', 'nosniff')  // -> Disable IE Compatibility Mode  res.set('X-UA-Compatible', 'IE=edge')  // -> Disables referrer header when navigating to a different origin  if (WIKI.config.security.securityReferrerPolicy) {    res.set('Referrer-Policy', 'same-origin')  }  // -> Enforce HSTS  if (WIKI.config.security.securityHSTS) {    res.set('Strict-Transport-Security', `max-age=${WIKI.config.security.securityHSTSDuration}; includeSubDomains`)  }  // -> Prevent Open Redirect from user provided URL  if (WIKI.config.security.securityOpenRedirect) {    // Strips out all repeating / character in the provided URL    req.url = req.url.replace(/(\/)(?=\/*\1)/g, '')  }  return next()}
 |