encrypt client password and fix upgrade db script (#188)

* encrypt client password and fix upgrade db script

* encrypt client password and fix upgrade db script

* obfuscate client password
This commit is contained in:
Hoan Luu Huu
2023-06-16 07:46:22 +07:00
committed by GitHub
parent 0b33ef0c2c
commit a0797a3a4c
6 changed files with 56 additions and 51 deletions
+6 -2
View File
@@ -4,6 +4,7 @@ const sysError = require('../error');
const Client = require('../../models/client');
const Account = require('../../models/account');
const { DbErrorBadRequest, DbErrorForbidden } = require('../../utils/errors');
const { encrypt, decrypt, obscureKey } = require('../../utils/encrypt-decrypt');
const commonCheck = async(req) => {
if (req.user.hasAccountAuth) {
@@ -15,6 +16,9 @@ const commonCheck = async(req) => {
}
}
if (req.body.password) {
req.body.password = encrypt(req.body.password);
}
};
const validateAdd = async(req) => {
@@ -51,7 +55,7 @@ router.get('/', async(req, res) => {
await Client.retrieveAllByAccountSid(req.user.hasAccountAuth ? req.user.account_sid : null) :
await Client.retrieveAllByServiceProviderSid(req.user.service_provider_sid);
const ret = results.map((c) => {
delete c.password;
c.password = obscureKey(decrypt(c.password), 1);
return c;
});
res.status(200).json(ret);
@@ -66,7 +70,7 @@ router.get('/:sid', async(req, res) => {
const results = await Client.retrieve(req.params.sid);
if (results.length === 0) return res.sendStatus(404);
const client = results[0];
delete client.password;
client.password = obscureKey(decrypt(client.password), 1);
if (req.user.hasAccountAuth && client.account_sid !== req.user.account_sid) {
return res.sendStatus(404);
} else if (req.user.hasServiceProviderAuth) {
+1 -2
View File
@@ -23,8 +23,7 @@ const decrypt = (data) => {
return decrpyted.toString();
};
const obscureKey = (key) => {
const key_spoiler_length = 6;
const obscureKey = (key, key_spoiler_length = 6) => {
const key_spoiler_char = 'X';
if (!key || key.length <= key_spoiler_length) {