防止包含 XSS 攻击风险的内容提交成功

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Net.Http;

using System.Web.Http;

using System.Data;

using System.Data.SqlClient;

using System.Text.RegularExpressions;

using System.Web;

/// <summary>

/// 清理HTML内容,防止XSS攻击

/// </summary>

/// <param name="input">输入字符串</param>

/// <returns>清理后的安全字符串</returns>

private string Sanitize(string input)

{

if (string.IsNullOrEmpty(input))

return string.Empty;

// 移除所有HTML标签

string sanitized = Regex.Replace(input, "<\^\>*>", "");

// 编码HTML特殊字符

sanitized = HttpUtility.HtmlEncode(sanitized);

// 移除可能的JavaScript代码

sanitized = Regex.Replace(sanitized, @"javascript:", "", RegexOptions.IgnoreCase);

sanitized = Regex.Replace(sanitized, @"on\w+\s*=", "", RegexOptions.IgnoreCase);

// 移除SQL注入相关的字符

sanitized = Regex.Replace(sanitized, @"'"";", "");

// 移除多余的空格

sanitized = Regex.Replace(sanitized, @"\s+", " ").Trim();

return sanitized;

}

// 从dynamic对象中提取参数

string emali = pro.emali?.ToString() ?? "";

string name = pro.name?.ToString() ?? "";

string phone = pro.phone?.ToString() ?? "";

string describe = pro.describe?.ToString() ?? "";

string type = pro.type?.ToString() ?? "";

string userids = pro.userid?.ToString() ?? "";

// 清理输入参数,防止XSS攻击

string em = Sanitize(emali);

string cleanName = Sanitize(name);

string cleanPhone = Sanitize(phone);

string cleanDescribe = Sanitize(describe);

string cleanType = Sanitize(type);

string cleanUserid = Sanitize(userids);

相关推荐
tg_xianheyun20 小时前
CDN节点分布如何影响网页加载速度和用户体验
服务器·cdn加速·全球访问优化
lsh曙光20 小时前
延时at指令和定时cron指令
linux·服务器·网络
圆山猫20 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管21 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
郭老二21 小时前
【前端】vue3:编译步骤
前端
IT小白杨21 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡21 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖21 小时前
Java深入解析篇九之NIO详解
java·网络·nio
不在逃避q21 小时前
Trae/Vs Code/Cursor命令行无法跑npm命令
前端·arcgis·npm
夏殇之殁1 天前
包中创建自定义列表项。 . 使用自定义列表项进行数据绑定 . 将天气预报数据保存到本地内存表,通过LiveBindings进行显示。 ...
服务器·前端·javascript