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

过滤url特殊字符

发布时间: 2021-03-23 09:34:19

1. 在.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();
}
}
}

2. 如何过滤url中javascript

在URL传递参数中,有一些特殊字符,而这些些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。
下表中列出了一些URL特殊符号及编码十六进制值
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字符 %25
6. # 表示书签 %23
7. & URL 中指定的参数间的分隔符 %26
8. = URL 中指定参数的值 %3D
解决的方法:
replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以替换掉全部匹配的字符(g为全局标志)。
replace()
js中替换字符变量如下:
data2=data2.replace(/\%/g,"%25");
data2=data2.replace(/\#/g,"%23");
data2=data2.replace(/\&/g,"%26");

3. java过滤特殊字符的问题

"+"在URL中会被当作空格处理。
必须使用URLEncoder将其变成URL编码。
或者使用 javascript 的 encodeURIComponent(url) 函数对URL进行编码转换。

4. js、jQuery如何过滤特殊字符(* 和/)

keyword=keyword.replace(/[\*\/]/g,"")

5. 正则表达式过滤url中后的内容

在RegexBuddy下测试,
auth_page[^\w\s]+(?P<ALLURL>\S+)
可以在 JGsoft、PCRE和Python下可以匹配到内容,其他的 Perl、Java等正则中没有匹配到。

你在什么的正则下面使用的?

6. 几种过滤URL和FORM中非法字符的方法

ASP过滤和FORM中非法字符第一种:<%'检查URL输入限制非法字符url=LCase(request.querystring())ip=request.ServerVariables( REMOTE_ADDR)pos1=instr(url,%)pos2=instr(url,')pos3=instr(url,;)pos4=instr(url,where)pos5=instr(url,select)pos6=instr(url,chr)pos7=instr(url,/)pos8=Instr(url,and)ifpos1<0orpos2<0orpos3<0orpos4<0orpos5<0orpos6<0orpos7<0orpos8<0thenresponse.Write 你尝试使用危险字符,系统已经对此做了记录如下您的IP:&ip&操作时间:&date()& response.End()endif'检查表单输入,限制非法字符'使用request.QueryString来索引request的所有资料,作为SQL检查之用'如出现非法字符则自动停止输出fori_request=1torequest.form.Countifinstr(request.form(i_request),')<0orinstr(request.form(i_request),;)<0thenResponse.Write <scriptlanguage='javascript'history.back();alert('你尝试使用危险字符,系统已经对此做了记录如下您的IP:&ip&操作时间:&date()& ');</script response.End()endifnext%第二种:<%OnErrorResumeNextdimsql_injdata,sql_inj,sql_get,sql_data SQL_injdata='|oxSQL_inj=split(SQL_Injdata,|)'定义过滤字符,可以自己添加,以|分隔''|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare'对post方式过滤IfRequest.Form<ThenForEachSql_PostInRequest.FormForSQL_Data=0ToUbound(SQL_inj)ifinstr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))0ThenResponse.redirectss'出错时转向页面 Response.endendifnextnextendif'对GET方式过滤IfRequest.QueryString<ThenForEachSQL_GetInRequest.QueryStringForSQL_Data=0ToUbound(SQL_inj)ifinstr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))0ThenResponse.redirectss'出错时转向页面 Response.endendifnextNextEndIf%第三种:functioncheckstr(str)'过滤非法字符函数dimtempstrifstr=thenexitfunctiontempstr=replace(str, chr(34),)'tempstr=replace(tempstr, chr(39),)''tempstr=replace(tempstr, chr(60),)'<tempstr=replace(tempstr, chr(62),)'tempstr=replace(tempstr, chr(37),)'%tempstr=replace(tempstr, chr(38),)'&tempstr=replace(tempstr, chr(40),)'(tempstr=replace(tempstr, chr(41),)')tempstr=replace(tempstr, chr(59),)';tempstr=replace(tempstr, chr(43),)'+tempstr=replace(tempstr, chr(45),)'-tempstr=replace(tempstr, chr(91),)'[tempstr=replace(tempstr, chr(93),)']tempstr=replace(tempstr, chr(123),)'{tempstr=replace(tempstr, chr(125),)'}checkstr=tempstrendfunction第四种:'================================================'函数名:IsValidStr'作用:判断字符串中是否含有非法字符'参数:str----原字符串'返回值:False‚True-----布尔值'================================================PublicFunctionIsValidStr(ByValstr)IsValidStr=(str)ThenExitFunctionIfTrim(str)=‚iForbidStr= and|chr|:|=|%|&|$|#|@|+|-|*|/|/|<||;|‚|^|&Chr(32)&|&Chr(34)&|&Chr(39)&|&Chr(9)ForbidStr=Split(ForbidStr‚|)Fori=0ToUBound(ForbidStr)IfInStr(1‚str‚ForbidStr(i)‚1)0ThenIsValidStr==TrueEndFunctionASP.(Stringpara)//过滤非法字符{intflag=0;flag+=para.indexOf(')+1;flag+=para.indexOf(;)+1;flag+=para.indexOf(1=1)+1;flag+=para.indexOf(|)+1;flag+=para.indexOf(<)+1;flag+=para.indexOf()+1;if(flag!=0){System. out 提交了非法字符!!!);returnfalse;}returntrue;}

7. JAVA中如何过滤字符串里面特殊字符

class test
{

public static void main(String []args)
{
String a = "1111-22-33 13:15:46",b=new String();
int i,j,t;
for(i=0;i<a.length();i++)
if(a.charAt(i)!='-' && a.charAt(i)!=':' && a.charAt(i)!=' ')
b=b+a.charAt(i);
System.out.println(b);
}
}

8. 如何处理URL特殊字符

有些符号在URL中是不能直接传递的,如果要在URL中传递这些
特殊符号
,那么就要使用他们的编码了。编码的格式为:%加字符的ASCII码,即一个
百分号
%,后面跟对应字符的ASCII(
16进制
)码值。例如
空格的编码值是"%20"。

9. JAVA如何处理URL中的特殊字符

这个过程叫转义。
val = "@123+abc%A&B";
val = encodeURIComponent(val);
...
java:
String s = new String(request.getParameter("val").getBytes("ISO8859-1"), "UTF-8");
在数据库保存时,只要转义单引号,&,| ,?,可能还有遇到再补充吧

10. URL中有特殊字符怎么处理

我们知道发送一个http请求时,如果使用的是GET方法,请求的参数会包含在url中并通过&进行分割,如:http://www.example.com/index?name=name1&id=id2。服务端根据url中的参数获取对应的值。Java编写的后台代码,可通过HttpServletRequest的方法getParameter("name")获取name的值:name=name1.
事实上HttpServletRequest获取参数是对字符串"?name=name1&id=id2"进行拆分,根据"&"分割出参数名称,根据"="分割出参数值。那么问题来了,如果我们的name里面本身就包含有&或者=,如name="na&me=1",如果发送http请求前不做相应的处理,url就变成了http://www.example.com/index?name=na&me=1&id=id2,这个时候后台解析出来的参数就变成了:name=na;me=1;id=id2,这显然不是我们想要的结果。
面对这个情况的解决方法是对url中存在歧义的字符串进行URL编码。URL编码就是使用一种安全的字符去表示不安全的或存在歧义的字符,”na&me=1"经过URL编码后的值为:na%26me%3d1,这个时候我们发送http请求的url改为:http://www.example.com/index?name=na%26me%3d1&id=id2,服务端进行解码后解析参数便可获得正确的值:name="na&me=1"。

热点内容
丁度巴拉斯情人电影推荐 发布: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