fix: improve map editor and monitor operations

This commit is contained in:
zhaowei.huang
2026-07-26 14:14:19 +08:00
parent beb6563060
commit 7af29fe07f
23 changed files with 2786 additions and 958 deletions
@@ -437,12 +437,12 @@ public static class PlatformPersistence
private static async Task EnsureSqliteColumnAsync(PlatformDbContext db, string table, string column, string definition)
{
// 仅允许内部迁移调用方传入的标识符;拒绝注入用分隔符/空白
// 仅允许内部迁移调用方传入的标识符;definition 可含 GUID 默认值连字符
static bool IsSafeIdent(string s) =>
!string.IsNullOrEmpty(s) && s.All(ch => char.IsAsciiLetterOrDigit(ch) || ch == '_');
if (!IsSafeIdent(table) || !IsSafeIdent(column)
|| definition.Contains(';') || definition.Contains("--")
|| !System.Text.RegularExpressions.Regex.IsMatch(definition, @"^[A-Za-z0-9_()'.,\s]+$"))
|| !System.Text.RegularExpressions.Regex.IsMatch(definition, @"^[A-Za-z0-9_()'.,\s\-]+$"))
throw new ArgumentException("unsafe sqlite migration identifier");
var conn = db.Database.GetDbConnection();