⑴ ASP 过滤6位以上数字的函数,如何写
<%
sub filtrate(Str)
Set RegEx=New RegExp
RegEx.Global=True
RegEx.IgnoreCase=True
RegEx.Multiline=True
RegEx.Pattern="\d{6,}"
Str=RegEx.Replace(Str,"")
Response.write Str
Set RegEx=Nothing
End Sub
i="我要33,我不要666666,我也不要7777777777" '注666666,7777777777是随机数
filtrate i
%>
⑵ asp过滤所有的html代码函数
应该是可以过掉所有的标签的.大小写已经忽略,全局已经打开,多行也打开着,看了一下你的匹配专式也是正确的属啊.你过不掉的可能是因为中间有空间,而[^>]表示的是不包含>的所有字符.怎么会过滤不掉呢?
"<[\/]?\w+(\s+\w+\=[\"]?\w+[\"]?)*[\/]?>"
这样试试如何
⑶ ASP特殊字符过滤
Function ChkInvaildWord(Words)
Const InvaildWords=\"select|update|delete|insert|@|--|,\" \'\'需要过滤得字符以“|”隔开,最后结束的字符必须是|
ChkInvaildWord=True
InvaildWord=Split(InvaildWords,\"|\")
inWords=LCase(Trim(Words))
For i=LBound(InvaildWord) To UBound(InvaildWord)
If Instr(inWords,InvaildWord(i))>0 Then
ChkInvaildWord=True
Exit Function
End If
Next
ChkInvaildWord=False
End Function
你所得到的只是一个加ChkInvaildWord事件的代码
看你怎么去用了
例如 你现在接受了一个STR的值
那么就直接 ChkInvaildWord(STR)
如果STR中间有特殊字符 那么你就得到了FALSE
如果没有 那么你就得到TRUE
一般都都会在前面加上IF判断。。
然后输出 错误
完整的就如1楼的
⑷ asp程序,怎么可以把下面的话中间的空格全部过滤掉!不要告诉我一个一个删!!!我要的是过滤函数!
可以使用replace(),用 "" 替换掉全部的 " "或者"/\s*$/"
语法如下:
replace()
功能将一个字符串中指定个数的字符串替换为另一个字符串。
语法Replace ( string1, start, string2,n,m )
参数string1:string类型,指定要使用string2替换其中一部分内容的字符串;
参数start:long类型,指定要从哪个字符位置开始替换字符串,字符串中第一个字符的位置为1;
参数n:long类型,指定要替换开始字符起始位置,从左到右;
参数m:int类型,指定要替换字符串的次数,1 代表替换一次;
参数string2:string类型,指定用哪个字符串替换string1的部分字符返回值String。函数执行成功时返回替换后的字符串,发生错误时返回空字符串("")。如果任何参数的值为NULL,Replace()函数返回NULL。用法如果start参数指定的位置超过了string1的长度,那么Replace()函数把将string2拼接到string1的后面形成的字符串返回。
⑸ ASP特殊字符过滤~~~~~~急!!!!!!!~~~~~~
给你个例子你研究以下吧
过滤函数102.asp的内容
china2008(request.form("userid")) //这里的"userid" ,"password"
china2008(request.form("password"))
// 和提交页面的name值要一样,其他的都不改。
login.asp内容
用户名:<input class=buinput name="userid" size="20" maxlength="10" type="text">
密 码:<input class=buinput name="password" size="20" maxlength="10" type="password">
//这里加过滤函数102.asp的文件login.asp
// <form method="post" action="login.asp" name="man">
黑客通用如ASP没有过滤函数用这个就可以跑到你的后台 'or''=''or''or' asp'or'1 'or'='or' 'or''='
下面是102.ASP文件
<%
function china2008(aspdic)
if not isnull(aspdic) then
if instr(aspdic,";")<>0 or instr(aspdic,"&")<>0 or instr(aspdic,">")<>0 or instr(aspdic,",")<>0 or instr(aspdic,"=")<>0 or instr(aspdic,"%")<>0 or instr(aspdic,"'")<>0 then
response.write"所输入的数据包含非法字符"
response.end
end if
end if
end function
china2008(request.form("userid"))
china2008(request.form("password"))
%>
⑹ asp 正则表达式 过滤函数,要求能过滤table,td中的式样
不什么ASP, 只懂PHP,我想应该不一样.
贴段 JAVASCRIPT的代码
result = subject.replace(/<form>(.*?)<\/form>/g, "<!--form-->$1<!--/form-->");
如果asp 的 replace 支持正则,应该是这样写
filtration = replace(filtration,"/<form>(.*?)<\/form>/g", "<!--form-->$1<!--/form-->");
⑺ 关于ASP防注入漏洞中的replace函数
这个替换完全没有意义。以下是测试代码:
<html><body>
这里是测试文字<br/>
<%
Dim TextIn
Dim SQLFixup
On error resume next
TextIn="<script language=javascript>alert('hello!');</script>"
SQLFixup = Replace(TextIn, "script", "script", 1, -1, 0)
if err then
response.write "有错误发生:"& err.description &"<br/>"
err.clear
end if
response.write "TextIn="&TextIn&"<br/>"&vbCrlf
response.write "SQLFixup="&SQLFixup
%></body></html>
运行结果是弹出两个警告框。
网上资料参差不齐,不要尽信所谓高手教程,自己动手试试才能真正学到东西。
2006年12月31日补充:
防止SQL注入的本质就是让用户输入的东西不影响SQL语句的正常执行。
有两个思路:一个是过滤掉可能影响SQL执行的语句,这应该是网站流传资料比较多的一个思路;
另一个就是,只选择出需要的安全字符;
两个思路不一而足,各有有缺点。但在一些常见的SQL注入,如登陆,中采用正则表达式实现第二种思路是非常便捷和高效的:
如:
过滤用户名中的非法字符
Function dealUserName(userName_)
Dim RegExpObj
Dim i,n
Dim userName,tempStr,resultStr
userName=Trim(userName_)
Set RegExpObj=new RegExp
RegExpObj.Global = True
RegExpObj.Pattern="^[a-zA-Z0-9_]+$" '只允许字母、数字和下划线
'RegExpObj.Pattern="^\w+$" '效果同上
resultStr=userName
n=Len(userName)
for i=1 to n
tempStr=Mid(userName,i,1)
if not RegExpObj.test(tempStr) then resultStr=Replace(resultStr,tempStr,"")
next
Set RegExpObj=nothing
dealUserName=resultStr
End Function
上述函数过滤掉用户名中的除字母、数字和下划线之外的所有字符,这样便不会影响到SQL查询语句的正常执行了。
正则表达式的功能相当强大,使用相当灵活。防SQL注入关键还在于结合自己的实际情况来综合考虑。
⑻ 求asp字符串过滤防止sql注入等安全选项的过滤代码
这个函数可以解决
Function SafeRequest(ParaName,ParaType)
'--- 传入参数 ---
'ParaName:参数名称-字符型
'ParaType:参数类型-数字型(1表示以上参数是数专字,0表示以上参数为属字符)
Dim ParaValue
ParaValue=Request(ParaName)
If ParaType=1 then
If not isNumeric(ParaValue) then
Response.write "参数" & ParaName & "必须为数字型!"
Response.end
End if
Else
ParaValue=replace(ParaValue,"'","''")
End if
SafeRequest=ParaValue
End function
⑼ 关于asp编程——过滤函数的调用的问题
<input type="submit" name="Submit" onClick="Checkstr(Str)" value="提交" />
onClick="Checkstr(Str)" 这个是调用的客户端的脚本用的
checkstr(str) 中的str 是参数但你好像也没指定
http://blog.sina.com.cn/s/blog_4a0a22660100dod7.html
上的是VBscript服务器端脚本不能当客户端脚本调用。。。。。。。。。
要么你用 JS写个Checkstr(str) 函数
要么到服务器端脚本VBscript调用你下的那个函数
⑽ 在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 "";
}
}