现在ASP网站程序用户越来越少了,很多人归结原因是因为漏洞多才会这样的,其实这种认知是错误的,任何程序都会有漏洞,那为什么ASP程序用户越来越不受欢迎了呢?主要原因是网络毒鸡汤太多了,影响了大部分人的思想!对于小规模企业或者企业单位网站,ASP程序的运行效率不比任何网站程序语言低,主要原因对于开发者来说是扩展太少了,微软官方早就不对其升级了,假如微软重视他,也不会沦落到用户越来越少的地步,但是从专业的角度讲,ASP程序还是非常优秀的,投资少,效率高,建站用何乐而不为呢?
下面我着重讲解一点ASP程序网站如何防止一般黑客的入侵
首先,你得过滤传递的索引及参数,如常用id,你得在接收页面判断是否是数字,非数字整形可以认为非法
其次,我写了一些简单过滤集合,可以过滤大部分非法攻击
Dim xy_post,xy_get,xy_in,xy_inf,xy_p
'自定义需要过滤的字串,用 "|" 分隔 ' 防止SQL注入以及XSS跨站攻击
xy_in = "'|;|exec|copy|format|and|insert|updateselect|delete|count|*|chr|mid|master|truncate|char|declare|<|>|script|--|sp_|xp_|\|dir|cmd|^"
xy_inf = split(xy_in,"|")
'--------POST部份------------------
If Request.Form<>"" Then
For Each xy_post In Request.Form
For xy_p=0 To Ubound(xy_inf)
If Instr(LCase(Request.Form(xy_post)),xy_inf(xy_p))<>0 Then
response.write "<script>alert(""警告:\n请不要尝试非法注入!!"");history.go(-1);</script>"
Response.End
End If
Next
Next
End If
'--------GET部份-------------------
If Request.QueryString<>"" Then
For Each xy_get In Request.QueryString
For xy_p=0 To Ubound(xy_inf)
If Instr(LCase(Request.QueryString(xy_get)),xy_inf(xy_p))<>0 Then
response.write "<script>alert(""警告:\n请不要尝试非法注入!!"");history.go(-1);</script>"
Response.End
End If
Next
Next
End If
分为参数过滤,表单过滤(包括POST或request),有的这些,首先90%的攻击止于这里,其他涉及程序参数交互的地方把把关,正常就安全了!
假如对于服务器攻击行为,那个就和程序没有多大关系了,就得对服务器安全做了,这个就是专业服务器安全工程师去维护了!