日期:2014-05-17  浏览次数:20803 次

asp+Access的网页老是被攻击怎么办呀
我们学校的网页是采用ASP+Access做的,调用数据库时没有加密,
现在老是被别人攻击,常常放入广告等,
我分析了一下,好像是别人直接攻击数据库的,
那位高手能帮帮我??
如果我想在Access里加密,用Asp怎么调用,请给一段代码!!谢谢了!!

------解决方案--------------------
那就去学习JSP吧!运行慢了点,但是安全,不容易被攻击
------解决方案--------------------
过滤非法字符!!!使用replace函数替换非法字符
------解决方案--------------------
过滤非法字符!!!使用replace函数替换非法字符
防止SQL非常注入
ASP 虽说漏洞较多
但已经是发展的比较成熟的一门语言了

------解决方案--------------------
防止sql注入基本上就可以了。还有增强密码安全性和服务器的安全性。
------解决方案--------------------
你用MD5加密一下密码,然后把数据库的路径改得复杂一点。
一般不要把数据库的文件夹命名为DateBase之类的。
换成其他名字,数据库的名字也换掉。
------解决方案--------------------
我在Access里加密码了,只有通过密码才能连接,就连提交表单那里也设置了验证。
但现在还是被攻击,只是少些了,我不知道要怎么做了。
高手!!快快出来呀
------解决方案--------------------
只需要防止SQL注入就可以了。
简单的说,凡是出现如下语句的地方:
strSQL= "SELECT ... FROM ... WHERE USERNAME='" & request.form("UserName") & "'"
凡是把浏览者输入的内容插入到sql语句中并执行的地方,就一定要对输入的内容进行过滤处理,把敏感字符过滤掉。敏感字符包括单引号,双引号,如果可以的话还要把空格去掉。
比如我的登录判断:

dim user
user=replace(trim(request.Form("username")),"'","")
user=replace(user,chr(34),"")
user=replace(user,chr(37),"")
user=replace(user,chr(42),"")
sql="select * from users where username='"&user&"'"
rs.open sql,conn,1,1
'以下省略

这样处理后,基本不会有什么问题了。
------解决方案--------------------
asp版的防范SQL注入式攻击代码~:

<%
On Error Resume Next
Dim strTemp

If LCase(Request.ServerVariables("HTTPS")) = "off" Then
strTemp = "http://"
Else
strTemp = "https://"
End If

strTemp = strTemp & Request.ServerVariables("SERVER_NAME")
If Request.ServerVariables("SERVER_PORT") <> 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")

strTemp = strTemp & Request.ServerVariables("URL")

If Trim(Request.QueryString) <> "" Then strTemp = strTemp & "?" & Trim(Request.QueryString)

strTemp = LCase(strTemp)

If Instr(strTemp,"select%20") or Instr(strTemp,"insert%20") or Instr(strTemp,"delete%20from") or Instr(strTemp,"count(") or Instr(strTemp,"drop%20table") or Instr(strTemp,"update%20") or Instr(strTemp,"truncate%20") or Instr(strTemp,"asc(") or Instr(strTemp,"mid(") or Instr(strTemp,"char(") or Instr(strTemp,"xp_cmdshell") or Instr(strTemp,"exec%20master") or Instr(strTemp,"net%20localgroup%20administrators") or Instr(strTemp,":") or Instr(strTemp,"net%20user") or Instr(strTemp,"'") or Instr(strTemp,"%20or%20") then
Response.Write "<script language='javascript'>"
Response.Write "alert('非法地址!!');"
Response.Write "location.href='error.asp';"
Response.Write "<script>"
End If
%>

------解决方案--------------------
如果要更安全一些,还要对access数据库文件进行防下载处理。
经过我的试验,不管是把文件名改为.asp,还是在文件名中插入空格、百分号之类的字符,都是没用的。真正有用的方法是——
在数据库中建立一个表,只需要一个字段,类型是OLE对象。
然后在电脑上新建一个txt,内容是<%response.end%>,或者你要redirect或者干脆让它出错什么的都可以。然后再数据库中的那个表,导入该txt。然后把数据库后缀名改为asp
这样,当别人试图下载的时候,<%%>里面的内容将被运行,从而防止下载。你也完全可以redirect到某个avi文件上,让他辛辛苦苦下了半天,发现下载的是养猪的讲座,岂不是很好玩。