feat: enhance terminal input validation and update keyboard shortcuts

- Added validation for terminal input to ensure it is a string and limited to 1MB to prevent memory issues.
- Implemented checks for terminal resize dimensions to ensure they are positive integers within specified bounds.
- Updated keyboard shortcuts for terminal actions to use Alt key combinations instead of Ctrl+Shift for better accessibility.
This commit is contained in:
SuperComboGamer
2025-12-20 23:26:28 -05:00
parent 8f5e782583
commit 820f43078b
3 changed files with 37 additions and 15 deletions

View File

@@ -2,6 +2,7 @@
* Common utilities and state for terminal routes
*/
import { randomBytes } from "crypto";
import { createLogger } from "../../lib/logger.js";
import type { Request, Response, NextFunction } from "express";
import { getTerminalService } from "../../services/terminal-service.js";
@@ -49,12 +50,10 @@ export function getTokenData(
}
/**
* Generate a secure random token
* Generate a cryptographically secure random token
*/
export function generateToken(): string {
return `term-${Date.now()}-${Math.random()
.toString(36)
.slice(2, 17)}${Math.random().toString(36).slice(2, 17)}`;
return `term-${randomBytes(32).toString("base64url")}`;
}
/**