请问下面的正则过滤XML.send的内容时什么位置导至发送的内容为空?
Microsoft.XMLHTTP
http.send("<?xml version='1.0' encoding='utf-8'?><request>" + document.getElementById("keyword").value + "</request>");
请问下面的正则过滤XML.send的内容时什么位置导至发送的内容为空?
if request Form<>"" then call stophacker(request Form,"\b(and|or)\b {1,6}?(=|>|<|\bin\b|\blike\b)|/\* +?\*/|< *script\b|\bEXEC\b|UNION +?SELECT|UPDATE +?SET|INSERT +INTO +?VALUES|(SELECT|DELETE) +?FROM|(CREATE|ALTER|DROP|TRUNCATE) +(TABLE|DATABASE)")
function stophacker(values,re)
dim l_get, l_get2,n_get,regex,IP
for each l_get in values
l_get2 = values(l_get)
set regex = new regexp
regex.ignorecase = true
regex.global = true
regex.pattern = re
if regex.test(l_get2) then
Response.Write "到底是哪错了呢?"
Response.end
end if
set regex = nothing
next
end function
------解决方案--------------------
这个正则,主要是过滤掉可疑信息,比如:
<script 可能企图执行JS脚本,进行跨站攻击啥的
EXEC 可能企图在数据库中执行操作系统指令
INSERT 可能企图在数据库中插入数据
TRUNCATE 可能企图将数据库表清空掉
------解决方案--------------------
不太容易看出来,表达式比较复杂,建议分段来进行测试,以逐步缩小范围。