fix: improve map editor and monitor operations
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user