feat(Validators): add server ID validation function to prevent path traversal and unsafe characters; update routes to utilize new validation logic
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m55s

This commit is contained in:
2026-02-22 23:28:19 +07:00
parent c3fba50de8
commit 353d14d64e
6 changed files with 54 additions and 17 deletions
+17
View File
@@ -195,6 +195,22 @@ function sanitizeString(str) {
return cleaned.trim();
}
/**
* Валидация идентификатора сервера для использования в S3-ключах и путях.
* Запрещает path traversal (.., /, \) и небезопасные символы.
* @param {string} serverId - идентификатор сервера
* @param {object} opts - { maxLength: number } (по умолчанию 128)
* @returns {boolean}
*/
function isValidServerId(serverId, opts = {}) {
if (!serverId || typeof serverId !== 'string') return false;
const maxLen = opts.maxLength != null ? opts.maxLength : 128;
const trimmed = serverId.trim();
if (trimmed.length === 0 || trimmed.length > maxLen) return false;
if (trimmed.includes('..') || trimmed.includes('/') || trimmed.includes('\\')) return false;
return /^[a-zA-Z0-9_.-]+$/.test(trimmed);
}
/**
* Проверка на SQL injection паттерны
* @param {string} str - строка для проверки
@@ -328,6 +344,7 @@ module.exports = {
isValidASN,
isValidCommunity,
isValidGateway,
isValidServerId,
sanitizeString,
isSafeSQLString,
isSafeXSSString,