防止包含 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);

相关推荐
最初的↘那颗心4 分钟前
Flink Stream API - 源码开发需求描述
java·大数据·hadoop·flink·实时计算
跟橙姐学代码9 分钟前
学Python,先把这“三板斧”练到炉火纯青!(零基础也能看懂)
前端·python
Jimmy12 分钟前
客户端存储 - IndexedDB
前端·javascript·indexeddb
滕本尊14 分钟前
从业务到框架:Elpis 企业级应用的 NPM 包抽离实践
前端·全栈
华仔啊15 分钟前
别学23种了!Java项目中最常用的6个设计模式,附案例
java·后端·设计模式
木春16 分钟前
React入门:构建你的第一个应用
前端·react.js
gzzeason21 分钟前
ES6+内置进制转换方法
前端·ecmascript·es6
在路上`21 分钟前
前端学习之后端小白java的一些理论知识(框架)
java·学习
华洛28 分钟前
落地AI产品的最后一步:微调(面向非LLM算法工程师)
前端·aigc·产品经理
成小白32 分钟前
前端实现两个页面之间的通讯
前端·javascript