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

相关推荐
架构师沉默10 分钟前
Java优雅使用Spring Boot+MQTT推送与订阅
java·开发语言·spring boot
tuokuac12 分钟前
MyBatis 与 Spring Boot版本匹配问题
java·spring boot·mybatis
前端程序媛-Tian20 分钟前
【dropdown组件填坑指南】—怎么实现下拉框的位置计算
前端·javascript·vue
嘉琪00128 分钟前
实现视频实时马赛克
linux·前端·javascript
烛阴1 小时前
Smoothstep
前端·webgl
zhysunny1 小时前
05.原型模式:从影分身术到细胞分裂的编程艺术
java·原型模式
若梦plus1 小时前
Eslint中微内核&插件化思想的应用
前端·eslint
爱分享的程序员1 小时前
前端面试专栏-前沿技术:30.跨端开发技术(React Native、Flutter)
前端·javascript·面试
超级土豆粉1 小时前
Taro 位置相关 API 介绍
前端·javascript·react.js·taro
若梦plus1 小时前
Webpack中微内核&插件化思想的应用
前端·webpack