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

相关推荐
yunmi_几秒前
分布式文件存储系统FastDFS(入门)
java·分布式·maven·fastdfs
海绵宝龙19 分钟前
将若依(RuoYi)项目创建为私有Gitee仓库的完整步骤
前端·gitee
一匹电信狗29 分钟前
【MySQL】数据库基础
linux·运维·服务器·数据库·mysql·ubuntu·小程序
FL162386312938 分钟前
VMware运行python脚本提示libGL error: MESA-LOADER: failed to open swrast
linux·运维·服务器
路由侠内网穿透1 小时前
本地部署开源视频存档和搜索引擎工具 TubeArchivist 并实现外部访问
服务器·网络·windows·tcp/ip·搜索引擎·开源
未来之窗软件服务1 小时前
操作系统应用开发(十四)RustDesk服务器配置——东方仙盟筑基期
运维·服务器·远程桌面·rustdesk·仙盟创梦ide·东方仙盟
K_i1341 小时前
指针步长:C/C++内存操控的核心法则
java·开发语言
宇宙超粒终端控制中心2 小时前
Java使用easypoi填充数据到word
java·spring boot·spring cloud·java-ee·easypoi
ps_xiaowang2 小时前
React Query入门指南:简化React应用中的数据获取
前端·其他·react native·react.js
知识分享小能手2 小时前
微信小程序入门学习教程,从入门到精通,微信小程序开发进阶(7)
前端·javascript·学习·程序人生·微信小程序·小程序·vue3