专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »网站安全 » 防范黑客技术的意义:网站WebSite安全建设ASP网站WebSite黑客防范窍门技巧 »正文

防范黑客技术的意义:网站WebSite安全建设ASP网站WebSite黑客防范窍门技巧

来源: 发布时间:星期四, 2009年12月10日 浏览:0次 评论:0
  如何更好达到防范黑客攻击本人提下个人意见!
  第免费不要真就免费用既然你可以共享原码那么攻击者样可以分析代码如果在细节上注意防范那样你站点安全性就大大提高了即使出现了SQL Injection这样漏洞攻击者也不可能马上拿下你站点由于ASP方便易用越来越多网站WebSite后台都使用ASP脚本语言但是 由于ASP本身存在些安全漏洞稍不小心就会给黑客提供可乘的机事实上安全不仅是网管编程人员也必须在某些安全细节上注意养成良好安全习惯否则会给自己网站WebSite带来巨大安全隐患目前大多数网站WebSite上ASP有这样那样安全漏洞但如果编写时候注意还是可以避免
  1、用户名和口令被破解
  攻击原理:用户名和口令往往是黑客们最感兴趣东西如果被通过某种方式看到源代码后果是严重
  防范窍门技巧:涉及用户名和口令最好封装在服务器端尽量少在ASP文件里出现涉及和数据库连接用户名和口令应给予最小权限出现次数多用户名和口令可以写在个位置比较隐蔽包含文件中如果涉及和数据库连接在理想状态下只给它以执行存储过程权限千万不要直接给予该用户修改、插入、删除记录权限
  2、验证被绕过
  攻击原理:现在需要经过验证ASP大多是在页面头部加个判断语句但这还不够有可能被黑客绕过验证直接进入
  防范窍门技巧:需要经过验证ASP页面可跟踪上个页面文件名只有从上页面转进来会话才能读取这个页面
  3、inc文件泄露问题
  攻击原理:当存在ASP主页正在制作且没有进行最后调试完成以前可以被某些搜索引擎机动追加为搜索对象如果这时候有人利用搜索引擎对这些网页进行查找会得到有关文件定位并能在浏览器中查看到数据库地点和结构细节并以此揭示完整源代码
  防范窍门技巧:员应该在网页发布前对它进行彻底调试;安全专家则需要加固ASP文件以便外部用户不能看到它们首先对.inc文件内容进行加密其次也可以使用.asp文件代替.inc文件使用户无法从浏览器直接观看文件源代码inc文件文件名不要使用系统默认或者有特殊含义容易被用户猜测到名称尽量使用无规则英文字母
  4、自动备份被下载
  攻击原理:在有些编辑ASP工具中当创建或者修改个ASP文件时编辑器自动创建个备份文件比如:UltraEdit就会备份个.bak文件如你创建或者修改了some.asp编辑器会自动生成个叫some.asp.bak文件如果你没有删除这个bak文件攻击者可以直接下载some.asp.bak文件这样some.asp就会被下载
  防范窍门技巧:上传的前要仔细检查删除不必要文档对以BAK为后缀文件要特别小心
  5、特殊
  攻击原理:输入框是黑客利用个目标他们可以通过输入脚本语言等对用户客户端造成损坏;如果该输入框涉及数据查询他们会利用特殊查询语句得到更多数据库数据甚至表全部因此必须对输入框进行过滤但如果为了提高效率仅在客户端进行输入合法性检查仍有可能被绕过
  防范窍门技巧:在处理类似留言板、BBS等输入框ASP最好屏蔽掉HTML、javaScript、VBScript语句如无特殊要求可以限定只允许输入字母和数字屏蔽掉特殊同时对输入长度进行限制而且不但要在客户端进行输入合法性检查同时要在服务器端中进行类似检查
  6、数据库下载漏洞
  攻击原理:在用Access做后台数据库时如果有人通过各种思路方法知道或者猜到了服务器Access数据库路径和数据库名称那么他也能够下载这个Access数据库文件这是非常危险
  防范窍门技巧:
  (1)为你数据库文件名称起个复杂非常规名字并把它放在几层目录下所谓 “非常规” 打个比方说比如有个数据库要保存是有关书籍信息 可不要给它起个“book.mdb”名字而要起个怪怪名称比如d34ksfslf.mdb 并把它放在如./kdslf/i44/studi/几层目录下这样黑客要想通过猜方式得到你Access数据库文件就难上加难了
  (2)不要把数据库名写在有些人喜欢把DSN写在比如:
  DBPath = Server.MapPath(“cmddb.mdb”)
  conn.Open “driver={Microsoft Access Driver (*.mdb)};dbq=” & DBPath
  假如万给人拿到了源Access数据库名字就览无余了因此建议你在ODBC里设置数据源再在中这样写:
  conn.open“shujiyuan”
  (3)使用Access来为数据库文件编码及加密首先在“工具→安全→加密/解密数据库”中选取数据库(如:employer.mdb)然后按确定接着会出现“数据库加密后另存为”窗口可存为:“employer1.mdb”
  要注意以上动作并不是对数据库设置密码而只是对数据库文件加以编码是为了防止他人使用别工具来查看数据库文件内容
  接下来我们为数据库加密首先打开经过编码了 employer1.mdb在打开时选择“独占”方式然后选取功能表“工具→安全→设置数据库密码”接着输入密码即可这样即使他人得到了employer1.mdb文件没有密码他也是无法看到 employer1.mdb中内容
  7、防范远程注入攻击
  这类攻击在以前应该是比较常见攻击方式,比如POST攻击,攻击者可以随便改变要提交数据值已达到攻击目.又如:COOKIES 伪造,这点更值得引起编写者或站长注意不要使用COOKIES来做为用户验证方式,否则你和把钥匙留给贼是同个道理.
  比如:
  If trim(Request. cookies ("uname"))="fqy" and Request.cookies("upwd") =”fqy#e3i5.com” then
  ……..more………
  End
  我想各位站长或者是喜好写朋友千万别出这类,真是不可饶恕.伪造COOKIES 都多少年了你还用这样就不能怪别人跑你密码.涉及到用户密码或者是用户登陆时,你最好使用session 它才是最安全.如果要使用COOKIES就在你COOKIES上多加个信息,SessionID,它随机值是64位,要猜解它,不可能.例:
   not (rs.BOF or rs.eof) then
  login="true"
  Session("username"&sessionID) = Username
  Session("password"& sessionID) = Password
  ‘Response.cookies(“username”)= Username
  ‘Response.cookies(“Password”)= Password
  下面我们来谈谈如何防范远程注入攻击,攻击都是将单表提交文件拖到本地,将Form ACTION=”chk.asp” 指向你服务器中处理数据文件即可.如果你全部数据过滤都在单表页上那么恭喜你你将已经被脚本攻击了.
  如何才能制止这样远程攻击?好办,请看代码如下: 体(9)
  <%
  server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
  server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
   mid(server_v1,8,len(server_v2))<>server_v2 then
  response.write "

<center>"
  response.write " "
  response.write "你提交路径有误禁止从站点外部提交数据请不要乱改参数!"
  response.write "
  "
  response.end
  end
  %>
  ‘个人感觉上面代码过滤不是很好些外部提交竟然还能堂堂正正进来,于是再写个.
  ‘这个是过滤效果很好,建议使用.
   instr(request.servervariables("http_referer"),"http://"&request.servervariables("host") ) <1 then response.write "处理 URL 时服务器上出错
  如果您是在用任何手段攻击服务器那你应该庆幸所有操作已经被服务器记录我们会第时间通知公安局和国家安全部门来调查你IP. "
  response.end
  end
  本以为这样就万事大吉了在表格页上加些限制,比如maxlength啦,等等..但天公就是那么不作美,你越怕什么他越来什么.你别忘了,攻击者可以突破sql注入攻击时输入框长度限制.写个SOCKET改变HTTP_REFERER?我不会网上发表了这样篇文章:
  ------------len.reg-----------------
  Windows Registry Editor Version 5.00
  [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\扩展(&E)]
  @="C:\Documents and Settings\Administrator\桌面\len.htm"
  "contexts"=dword:00000004
  -----------end----------------------
  -----------len.htm------------------
  ----------end-----------------------
  使用方法:先把len.reg导入注册表(注意文件路径)
  然后把len.htm拷到注册表中指定地方.
  打开网页,光标放在要改变长度输入框上点右键,看多了个叫扩展选项了吧
  单击搞定! 后记:同样也就可以对付那些限制输入内容脚本了.
  如何办?我们限制被饶过了所有努力都白费了?不举起你de键盘说不让我们继续回到脚本过滤吧他们所进行注入无非就是进行脚本攻击我们把所有精力全都用到ACTION以后页面吧在chk.asp页中我们将非法全部过滤掉结果如何?我们只在前面虚晃叫他们去改注册表吧当他们改完才会发现他们所做都是那么徒劳
  8、ASP木马
  已经讲到这里了再提醒各位论坛站长小心你们文件上传:为什么论坛被攻破后主机也随的被攻击者占据原因就在……对!ASP木马!个绝对可恶东西病毒么?非也.把个文件随便放到你论坛您老找去吧不吐血才怪哦如何才能防止ASP木马被上传到服务器呢?思路方法很简单如果你论坛支持文件上传请设定好你要上传文件格式我不赞成使用可更改文件格式直接从上锁定只有图象文件格式和压缩文件就完全可以多给自己留点方便也就多给攻击者留点方便如何判断格式我这里收集了也改出了大家可以看下:
  体(10)
  '判断文件类型是否合格
  Private Function CheckFileExt (fileEXT)
  dim Forumupload
  Forumupload="g,jpg,bmp,jpeg"
  Forumupload=split(Forumupload,",")
  for i=0 to ubound(Forumupload)
   l(fileEXT)=l(trim(Forumupload(i))) then
  CheckFileExt=true
  exit Function
  
  CheckFileExt=false
  end
  next
  End Function
  ‘验证文件内容合法性
   MyFile = server.CreateObject ("Scripting.FileObject")
   MyText = MyFile.OpenTextFile (sFile, 1) ' 读取文本文件
  sTextAll = l(MyText.ReadAll): MyText.close
  '判断用户文件中危险操作
  sStr ="8.getfolder.createfolder.deletefolder.createdirectory
  .deletedirectory"
  sStr = sStr & ".saveaswscript.shellscript.encode"
  sNoString = split(sStr,"")
  for i = 1 to sNoString(0)
   instr(sTextAll, sNoString(i)) <> 0 then
  sFile = Upl.Path & sFileSave: fs.DeleteFile sFile
  Response.write "<center>
<big>"& sFileSave &"文件中含有和操作目录等有关命令"&_
  "
<font color=red>"& mid(sNoString(i),2) &"</font> 为了安全原因<b>不能上传<b>"&_"</big></center></html>"
  Response.end
  end
  next
  把他们加到你上传里做次验证那么你上传安全性将会大大提高.
  拿出杀手锏请你虚拟主机服务商来帮忙吧登陆到服务器将PROG ID 中"shell.application"项和"shell.application.1"项改名或删除再将”WSCRIPT.SHELL”项和”WSCRIPT.SHELL.1”这两项都要改名或删除呵呵我可以大胆国内可能近半以上虚拟主机都没改过
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: