Add security check (#7247)

* added Parse Server security option

* added SecurityRouter

* added Check class

* added CheckGroup class

* moved parameter validation to Utils

* added CheckRunner class

* added auto-run on server start

* added custom security checks as Parse Server option

* renamed script to check

* reformat log output

* added server config check

* improved contributing guideline

* improved contribution guide

* added check security log

* improved log format

* added checks

* fixed log fomat typo

* added database checks

* fixed database check

* removed database auth check in initial version

* improved contribution guide

* added security check tests

* fixed typo

* improved wording guidelines

* improved wording guidelines
This commit is contained in:
Manuel
2021-03-10 20:19:28 +01:00
committed by GitHub
parent 36c2608400
commit bee889a329
17 changed files with 1096 additions and 2 deletions

View File

@@ -0,0 +1,31 @@
import PromiseRouter from '../PromiseRouter';
import * as middleware from '../middlewares';
import CheckRunner from '../Security/CheckRunner';
export class SecurityRouter extends PromiseRouter {
mountRoutes() {
this.route('GET', '/security',
middleware.promiseEnforceMasterKeyAccess,
this._enforceSecurityCheckEnabled,
async (req) => {
const report = await new CheckRunner(req.config.security).run();
return {
status: 200,
response: report,
};
}
);
}
async _enforceSecurityCheckEnabled(req) {
const config = req.config;
if (!config.security || !config.security.enableCheck) {
const error = new Error();
error.status = 409;
error.message = 'Enable Parse Server option `security.enableCheck` to run security check.';
throw error;
}
}
}
export default SecurityRouter;