mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 02:55:58 +01:00 
			
		
		
		
	closes #3899
This commit is contained in:
		| @@ -71,18 +71,7 @@ module.exports = function(app) { | |||||||
| 		saveUninitialized: true | 		saveUninitialized: true | ||||||
| 	})); | 	})); | ||||||
|  |  | ||||||
| 	app.use(function (req, res, next) { | 	app.use(middleware.addHeaders); | ||||||
| 		res.setHeader('X-Powered-By', 'NodeBB'); |  | ||||||
|  |  | ||||||
| 		if (meta.config['allow-from-uri']) { |  | ||||||
| 			res.setHeader('X-Frame-Options', 'ALLOW-FROM ' + meta.config['allow-from-uri']); |  | ||||||
| 		} else { |  | ||||||
| 			res.setHeader('X-Frame-Options', 'SAMEORIGIN'); |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		next(); |  | ||||||
| 	}); |  | ||||||
|  |  | ||||||
| 	app.use(middleware.processRender); | 	app.use(middleware.processRender); | ||||||
| 	auth.initialize(app, middleware); | 	auth.initialize(app, middleware); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,6 +7,7 @@ var app, | |||||||
| 	async = require('async'), | 	async = require('async'), | ||||||
| 	path = require('path'), | 	path = require('path'), | ||||||
| 	csrf = require('csurf'), | 	csrf = require('csurf'), | ||||||
|  | 	_ = require('underscore'), | ||||||
|  |  | ||||||
| 	validator = require('validator'), | 	validator = require('validator'), | ||||||
| 	nconf = require('nconf'), | 	nconf = require('nconf'), | ||||||
| @@ -64,6 +65,30 @@ middleware.pageView = function(req, res, next) { | |||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | middleware.addHeaders = function (req, res, next) { | ||||||
|  | 	var defaults = { | ||||||
|  | 		'X-Powered-By': 'NodeBB', | ||||||
|  | 		'X-Frame-Options': 'SAMEORIGIN', | ||||||
|  | 		'Access-Control-Allow-Origin': 'null'	// yes, string null. | ||||||
|  | 	}; | ||||||
|  | 	var headers = { | ||||||
|  | 		'X-Powered-By': meta.config['powered-by'], | ||||||
|  | 		'X-Frame-Options': meta.config['allow-from-uri'] ? 'ALLOW-FROM ' + meta.config['allow-from-uri'] : undefined, | ||||||
|  | 		'Access-Control-Allow-Origin': meta.config['access-control-allow-origin'], | ||||||
|  | 		'Access-Control-Allow-Methods': meta.config['access-control-allow-methods'], | ||||||
|  | 		'Access-Control-Allow-Headers': meta.config['access-control-allow-headers'] | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	_.defaults(headers, defaults); | ||||||
|  | 	headers = _.pick(headers, Boolean);		// Remove falsy headers | ||||||
|  |  | ||||||
|  | 	for(var key in headers) { | ||||||
|  | 		res.setHeader(key, headers[key]); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	next(); | ||||||
|  | }; | ||||||
|  |  | ||||||
| middleware.pluginHooks = function(req, res, next) { | middleware.pluginHooks = function(req, res, next) { | ||||||
| 	async.each(plugins.loadedHooks['filter:router.page'] || [], function(hookObj, next) { | 	async.each(plugins.loadedHooks['filter:router.page'] || [], function(hookObj, next) { | ||||||
| 		hookObj.method(req, res, next); | 		hookObj.method(req, res, next); | ||||||
|   | |||||||
| @@ -23,13 +23,40 @@ | |||||||
| </div> | </div> | ||||||
|  |  | ||||||
| <div class="row"> | <div class="row"> | ||||||
| 	<div class="col-sm-2 col-xs-12 settings-header">Domain Settings</div> | 	<div class="col-sm-2 col-xs-12 settings-header">Headers</div> | ||||||
| 	<div class="col-sm-10 col-xs-12"> | 	<div class="col-sm-10 col-xs-12"> | ||||||
| 		<form> | 		<form> | ||||||
| 			<div class="form-group"> | 			<div class="form-group"> | ||||||
| 				<label for="allow-from-uri">Set ALLOW-FROM to Place NodeBB in an iFrame:</label> | 				<label for="allow-from-uri">Set ALLOW-FROM to Place NodeBB in an iFrame</label> | ||||||
| 				<input class="form-control" id="allow-from-uri" type="text" placeholder="external-domain.com" data-field="allow-from-uri" /><br /> | 				<input class="form-control" id="allow-from-uri" type="text" placeholder="external-domain.com" data-field="allow-from-uri" /><br /> | ||||||
| 			</div> | 			</div> | ||||||
|  | 			<div class="form-group"> | ||||||
|  | 				<label for="powered-by">Customise the "Powered By" header sent by NodeBB</label> | ||||||
|  | 				<input class="form-control" id="powered-by" type="text" placeholder="NodeBB" data-field="powered-by" /><br /> | ||||||
|  | 			</div> | ||||||
|  | 			<div class="form-group"> | ||||||
|  | 				<label for="access-control-allow-origin">Access-Control-Allow-Origin</label> | ||||||
|  | 				<input class="form-control" id="access-control-allow-origin" type="text" placeholder="null" value="null" data-field="access-control-allow-origin" /><br /> | ||||||
|  | 				<p class="help-block"> | ||||||
|  | 					To deny access to all sites, leave empty or set to <code>null</code> | ||||||
|  | 				</p> | ||||||
|  | 			</div> | ||||||
|  | 			<div class="form-group"> | ||||||
|  | 				<label for="access-control-allow-methods">Access-Control-Allow-Methods</label> | ||||||
|  | 				<input class="form-control" id="access-control-allow-methods" type="text" placeholder="" data-field="access-control-allow-methods" /><br /> | ||||||
|  | 			</div> | ||||||
|  | 			<div class="form-group"> | ||||||
|  | 				<label for="access-control-allow-headers">Access-Control-Allow-Headers</label> | ||||||
|  | 				<input class="form-control" id="access-control-allow-headers" type="text" placeholder="" data-field="access-control-allow-headers" /><br /> | ||||||
|  | 			</div> | ||||||
|  | 		</form> | ||||||
|  | 	</div> | ||||||
|  | </div> | ||||||
|  |  | ||||||
|  | <div class="row"> | ||||||
|  | 	<div class="col-sm-2 col-xs-12 settings-header">Cookies</div> | ||||||
|  | 	<div class="col-sm-10 col-xs-12"> | ||||||
|  | 		<form> | ||||||
| 			<div class="form-group"> | 			<div class="form-group"> | ||||||
| 				<label for="cookieDomain">Set domain for session cookie</label> | 				<label for="cookieDomain">Set domain for session cookie</label> | ||||||
| 				<input class="form-control" id="cookieDomain" type="text" placeholder=".domain.tld" data-field="cookieDomain" /><br /> | 				<input class="form-control" id="cookieDomain" type="text" placeholder=".domain.tld" data-field="cookieDomain" /><br /> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user