diff --git a/CoreCms.Net.Utility/Helper/CommonHelper.cs b/CoreCms.Net.Utility/Helper/CommonHelper.cs
index 3d16271..6415dc0 100644
--- a/CoreCms.Net.Utility/Helper/CommonHelper.cs
+++ b/CoreCms.Net.Utility/Helper/CommonHelper.cs
@@ -664,5 +664,19 @@ namespace CoreCms.Net.Utility.Helper
return t;
}
+ #region 检测提交的内容是否包含非法信息
+
+ ///
+ /// 检测提交的内容是否包含非法信息。
+ ///
+ ///
+ ///
+ public static bool CheckData(string inputData)
+ {
+ var strRegex = @"<[^>]+?style=[\w]+?:expression\(|\b(alert|confirm|prompt)\b|^\+/v(8|9)|<[^>]*?=[^>]*?[^>]*?>|\b(and|or)\b.{1,6}?(=|>|<|\bin\b|\blike\b)|/\*.+?\*/|<\s*script\b|<\s*img\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET|INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
+ return Regex.IsMatch(inputData, strRegex);
+ }
+ #endregion
+
}
}
diff --git a/CoreCms.Net.Web.WebApi/Controllers/CommonController.cs b/CoreCms.Net.Web.WebApi/Controllers/CommonController.cs
index 7c65aab..6fd0876 100644
--- a/CoreCms.Net.Web.WebApi/Controllers/CommonController.cs
+++ b/CoreCms.Net.Web.WebApi/Controllers/CommonController.cs
@@ -13,6 +13,7 @@ using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
+using System.Text;
using System.Threading.Tasks;
using Aliyun.OSS;
using Aliyun.OSS.Util;
@@ -291,6 +292,18 @@ namespace CoreCms.Net.Web.WebApi.Controllers
return jm;
}
+ // 使用StreamReader来读取文件内容
+ using (var reader = new StreamReader(file.OpenReadStream(), Encoding.UTF8))
+ {
+ var content = await reader.ReadToEndAsync(); // 注意:这可能会消耗大量内存对于大文件,所以需要限制上传大小
+ // 检查内容是否合法
+ if (CommonHelper.CheckData(content))
+ {
+ jm.msg = "请勿提交非法数据。";
+ return jm;
+ }
+ }
+
string url = string.Empty;
if (filesStorageOptions.StorageType == GlobalEnumVars.FilesStorageOptionsType.LocalStorage.ToString())
{