1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- "use strict";
- var _Check = require("../Check");
- var _CheckGroup = _interopRequireDefault(require("../CheckGroup"));
- var _Config = _interopRequireDefault(require("../../Config"));
- var _node = _interopRequireDefault(require("parse/node"));
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
- class CheckGroupDatabase extends _CheckGroup.default {
- setName() {
- return 'Database';
- }
- setChecks() {
- const config = _Config.default.get(_node.default.applicationId);
- const databaseAdapter = config.database.adapter;
- const databaseUrl = databaseAdapter._uri;
- return [new _Check.Check({
- title: 'Secure database password',
- warning: 'The database password is insecure and vulnerable to brute force attacks.',
- solution: 'Choose a longer and/or more complex password with a combination of upper- and lowercase characters, numbers and special characters.',
- check: () => {
- const password = databaseUrl.match(/\/\/\S+:(\S+)@/)[1];
- const hasUpperCase = /[A-Z]/.test(password);
- const hasLowerCase = /[a-z]/.test(password);
- const hasNumbers = /\d/.test(password);
- const hasNonAlphasNumerics = /\W/.test(password);
-
- if (password.length < 14) {
- throw 1;
- }
-
- if (hasUpperCase + hasLowerCase + hasNumbers + hasNonAlphasNumerics < 3) {
- throw 1;
- }
- }
- })];
- }
- }
- module.exports = CheckGroupDatabase;
|