Files
WCTDataMiner/src/WCTDataMiner.Core/Security/SecurityConstants.cs

54 lines
1.3 KiB
C#
Raw Normal View History

namespace WCTDataMiner.Core.Security;
/// <summary>
/// 安全相关常量定义
/// </summary>
public static class SecurityConstants
{
/// <summary>
/// 默认允许的输出目录
/// </summary>
public static readonly string[] DefaultAllowedExportDirectories =
[
"exports",
"output",
"data/exports",
"data/output"
];
/// <summary>
/// 路径最大长度限制
/// </summary>
public const int MaxPathLength = 260;
/// <summary>
/// 文件名最大长度限制
/// </summary>
public const int MaxFileNameLength = 255;
/// <summary>
/// 禁止的路径模式
/// </summary>
public static readonly string[] ForbiddenPathPatterns =
[
"..", // 路径遍历
"~", // 用户主目录
"\\\\", // UNC 路径开始
"|", // 管道字符Windows 禁止)
">", // 重定向字符
"<", // 重定向字符
"*", // 通配符(用于文件名时)
"?" // 通配符(用于文件名时)
];
/// <summary>
/// 安全的文件扩展名白名单
/// </summary>
public static readonly string[] AllowedExportExtensions =
[
".csv",
".json",
".txt",
".log"
];
}