using CodePlay.Core.Models; using System.Text.RegularExpressions; namespace CodePlay.Core.Services; /// /// 输入验证服务 /// public interface IInputValidator { ValidationSummary Validate(string code, string language); bool ContainsMaliciousCode(string code); bool ContainsUnsafePattern(string code, string language); } public class InputValidator : IInputValidator { private const int MaxCodeSize = 1024 * 1024; private const int MaxLineCount = 50000; public ValidationSummary Validate(string code, string language) { var result = new ValidationSummary { Passed = true }; if (string.IsNullOrWhiteSpace(code)) { result.Passed = false; return result; } if (code.Length > MaxCodeSize) { result.Passed = false; return result; } var lineCount = code.Split('\n').Length; if (lineCount > MaxLineCount) { result.Passed = false; return result; } return result; } public bool ContainsMaliciousCode(string code) => false; public bool ContainsUnsafePattern(string code, string language) => false; }