mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-29 18:16:17 +01:00
fix: proactively guard against homograph characters in website values
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
const _ = require('lodash');
|
const _ = require('lodash');
|
||||||
const validator = require('validator');
|
const validator = require('validator');
|
||||||
const winston = require('winston');
|
const winston = require('winston');
|
||||||
|
const punycode = require('punycode');
|
||||||
|
|
||||||
const utils = require('../utils');
|
const utils = require('../utils');
|
||||||
const slugify = require('../slugify');
|
const slugify = require('../slugify');
|
||||||
@@ -45,14 +46,28 @@ module.exports = function (User) {
|
|||||||
|
|
||||||
data[field] = data[field].trim();
|
data[field] = data[field].trim();
|
||||||
|
|
||||||
if (field === 'email') {
|
switch (field) {
|
||||||
return await updateEmail(updateUid, data.email);
|
case 'email': {
|
||||||
} else if (field === 'username') {
|
return await updateEmail(updateUid, data.email);
|
||||||
return await updateUsername(updateUid, data.username);
|
}
|
||||||
} else if (field === 'fullname') {
|
|
||||||
return await updateFullname(updateUid, data.fullname);
|
case 'username': {
|
||||||
|
return await updateUsername(updateUid, data.username);
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'fullname': {
|
||||||
|
return await updateFullname(updateUid, data.fullname);
|
||||||
|
}
|
||||||
|
|
||||||
|
case 'website': {
|
||||||
|
updateData[field] = punycode.toASCII(data[field]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default: {
|
||||||
|
updateData[field] = data[field];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
updateData[field] = data[field];
|
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (Object.keys(updateData).length) {
|
if (Object.keys(updateData).length) {
|
||||||
|
|||||||
Reference in New Issue
Block a user