当前位置:首页 » 净水方式 » aspnet特殊字符过滤

aspnet特殊字符过滤

发布时间: 2021-04-03 13:31:21

㈠ asp.net(C#)匹配正则表达,替换所有特殊符号,防止sql注入

防止sql注入,最来简单的办法就是不要拼源接sql,而是采用SqlParameter参数化形式,如果条件可能有可能没有,可以采用:
string sql = "select * from xx where 1=1";
if(true){
sql += " and id=@id";
command.Parameters.Add(new SqlParameter
}

如果非要拼接sql,那么对于数值型,拼接前判断下是否数值,
字符串类型拼接前进行str.Replace("'", "''");// 把一个单引号替换为两个单引号
就可以避免sql注入了

你用正则,效率低,而且成效也不见得好

㈡ 为asp.net项目添加特殊字符输入验证

可以用JS遍历页面的控件类型,如果发现是文本框的,就对其验证好了。

㈢ 在.net中怎么样过滤地址栏特殊字符

||using System;
using System.Text.Regularexpression_rs;
using System.Web; bitscn_com

namespace FSqlKeyWord{
/// <summary>
/// SqlKey 的摘要说明。
/// </summary>
public class SqlKey{
private HttpRequest request;
private const string StrKeyWord = @"select|insert|delete|from|count(|drop table|update|truncate|asc(|mid(|char(|xp_cmdshell|exec master|netlocalgroup administrators|:|net user|""|or|and";
private const string StrRegex = @"[-|;|,|/|(|)|[|]|}|{|%|@|*|!|']";
public SqlKey(System.Web.HttpRequest _request){
//
// TODO: 在此处添加构造函数逻辑
//
this.request = _request;
}
/// <summary>
/// 只读属性 SQL关键字
/// </summary>
public static string KeyWord{
get{
return StrKeyWord;
}
}
/// <summary>
/// 只读属性过滤特殊字符
/// </summary>
public static string RegexString{
get{
return StrRegex;
}
}
/// <summary>
/// 检查URL参数中是否带有SQL注入可能关键字。
/// </summary>
/// <param name="_request">当前HttpRequest对象</param>
/// <returns>存在SQL注入关键字true存在,false不存在</returns>
public bool CheckRequestQuery(){
if (request.QueryString.Count != 0){
//若URL中参数存在,逐个比较参数。
for (int i = 0; i < request.QueryString.Count; i++){
// 检查参数值是否合法。
if (CheckKeyWord(request.QueryString[i].ToString())){
return true;
}
}
}
return false;
}

/// <summary>
/// 检查提交表单中是否存在SQL注入可能关键字
/// </summary>
/// <param name="_request">当前HttpRequest对象</param>
/// <returns>存在SQL注入关键字true存在,false不存在</returns>
public bool CheckRequestForm(){
if (request.Form.Count > 0){
//获取提交的表单项不为0 逐个比较参数
for (int i = 0; i < request.Form.Count; i++) {
//检查参数值是否合法
if (CheckKeyWord(request.Form[i])){
//存在SQL关键字
return true;

}
}
}
return false;
}

/// <summary>
/// 静态方法,检查_sword是否包涵SQL关键字
/// </summary>
/// <param name="_sWord">被检查的字符串</param>
/// <returns>存在SQL关键字返回true,不存在返回false</returns>
public static bool CheckKeyWord(string _sWord){
if (Regex.IsMatch(_sWord, StrKeyWord, RegexOptions.IgnoreCase) || Regex.IsMatch(_sWord, StrRegex))
return true;
return false;
}

/// <summary>
/// 反SQL注入:返回1无注入信息, 则返回错误处理
/// </summary>
/// <returns>返回1无注入信息,否则返回错误处理</returns>
public string CheckMessage(){
string msg = "1";
if (CheckRequestQuery()) //CheckRequestQuery() || CheckRequestForm(){
msg = "<span style='font-size:24px;'>非法操作!<br>";
msg += "操作IP:" + request.ServerVariables["REMOTE_ADDR"] + "<br>";
msg += "操作时间:" + DateTime.Now + "<br>";

msg += "页面:" + request.ServerVariables["URL"].ToLower() + "<br>";
msg += "<a href="#" onclick="history.back()">返回上一页</a></span>";
}
return msg.ToString();
}
}
}

㈣ asp.net怎么限制特殊字符

给用户名控件放一个正则验证控件 正则为:/w[0,]

㈤ .net 里怎么去掉特殊字符

你的JSON数据 从何而来, 从源头上解决这个问题。

㈥ 在asp.net传递参数怎么过滤特殊字符

1.传递前先加密 ,KEY是你自己定义的,加密解密函数KEY一致。
public static string Encode(string str, string key)
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(str);
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write);
stream2.Write(bytes, 0, bytes.Length);
stream2.FlushFinalBlock();
StringBuilder builder = new StringBuilder();
foreach (byte num in stream.ToArray())
{
builder.AppendFormat("{0:X2}", num);
}
stream.Close();
return builder.ToString();
}
2.获取参数后,解密
/// <summary>
/// Des 解密 GB2312
/// </summary>
/// <param name="str">Desc string</param>
/// <param name="key">Key ,必须为8位 </param>
/// <returns></returns>
public static string Decode(string str, string key)
{
try
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] buffer = new byte[str.Length / 2];
for (int i = 0; i < (str.Length / 2); i++)
{
int num2 = Convert.ToInt32(str.Substring(i * 2, 2), 0x10);
buffer[i] = (byte)num2;
}
MemoryStream stream = new MemoryStream();
CryptoStream stream2 = new CryptoStream(stream, provider.CreateDecryptor(), CryptoStreamMode.Write);
stream2.Write(buffer, 0, buffer.Length);
stream2.FlushFinalBlock();
stream.Close();
return Encoding.GetEncoding("GB2312").GetString(stream.ToArray());
}
catch (Exception)
{
return "";
}
}

㈦ asp.net 操作xml 特殊字符如何处理

<Ramark><![CDATA[配置了数字化调度系统RA303设备的基本信息。]]></Ramark>

上面就是xml的复杂数据在节点上的写法,去研究一下吧。

㈧ asp.net mvc3 中路由参数里有特殊字符怎么办

用base64把你要查询的字符串加密成随机码,在接收后把这个随机码在还原不就行了吗。这样也不是明文的出现在地址栏 。
比如说地址栏里出现:<a href="www..com"> 你用base64加密后成了+

㈨ asp.net过滤过滤字符串,求正则表达式,style=“ 任意css样式 ”过滤掉

/style="[^"]*"/
这是正则,把他铺货到的替换成空就好了。

㈩ 请问,怎么样用ASP过滤掉中文特殊字符

判断ascii值吧

热点内容
丁度巴拉斯情人电影推荐 发布:2024-08-19 09:13:07 浏览:886
类似深水的露点电影 发布:2024-08-19 09:10:12 浏览:80
《消失的眼角膜》2电影 发布:2024-08-19 08:34:43 浏览:878
私人影院什么电影好看 发布:2024-08-19 08:33:32 浏览:593
干 B 发布:2024-08-19 08:30:21 浏览:910
夜晚看片网站 发布:2024-08-19 08:20:59 浏览:440
台湾男同电影《越界》 发布:2024-08-19 08:04:35 浏览:290
看电影选座位追女孩 发布:2024-08-19 07:54:42 浏览:975
日本a级爱情 发布:2024-08-19 07:30:38 浏览:832
生活中的玛丽类似电影 发布:2024-08-19 07:26:46 浏览:239