仓酷云

标题: ASP网页编程之八年夜法例提防ASP网站毛病 [打印本页]

作者: 冷月葬花魂    时间: 2015-1-16 22:46
标题: ASP网页编程之八年夜法例提防ASP网站毛病
使用filesystemobject,可以对服务器上的文件进行操作,浏览、复制、移动、删除等。有ado的支持,asp对数据库的操作非常得心应手。你甚至可以像使用本地数据库那样,管理远程主机上的数据库,对表格、记录进行各种操作。  怎样更好的到达提防黑客打击,自己提一下团体定见!第一,收费程序不要真的就收费用,既然你能够共享原码,那末打击者一样能够剖析代码。假如在细节上注重提防,那样你站点的平安性就年夜年夜的进步了。即便呈现了SQLInjection如许的毛病,打击者也不成能即刻拿下你的站点。
  
  因为ASP的便利易用,愈来愈多的网站背景程序都利用ASP剧本言语。可是,因为ASP自己存在一些平安毛病,略不当心就会给黑客供应无隙可乘。现实上,平安不但是网管的事,编程职员也必需在某些平安细节上注重,养成优秀的平安习气,不然会给本人的网站带来伟大的平安隐患。今朝,年夜多半网站上的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={MicrosoftAccessDriver(*.mdb)};dbq=”&DBPath
  
  假设万一给人拿到了源程序,你的Access数据库的名字就一清二楚了。因而倡议你在ODBC里设置数据源,再在程序中如许写:
  
  conn.open“shujiyuan”
  
  (3)利用Access来为数据库文件编码及加密。起首在“工具→平安→加密/解密数据库”当选取数据库(如:employer.mdb),然后按断定,接着会呈现“数据库加密后另存为”的窗口,可存为:“employer1.mdb”。
  
  要注重的是,以上的举措并非对数据库设置暗码,而只是对数据库文件加以编码,目标是为了避免别人利用其余工具来检察数据库文件的内容。
  
  接上去我们为数据库加密,起首翻开经由编码了的employer1.mdb,在翻开时,选择“独有”体例。然后拔取功效表的“工具→平安→设置数据库暗码”,接着输出暗码便可。如许即便别人失掉了employer1.mdb文件,没有暗码他也是没法看到employer1.mdb中的内容。
  
  7、提防远程注进打击
  
  这类打击在之前应当是对照罕见的打击体例,好比POST打击,打击者能够任意的改动要提交的数据值已到达打击目标.又如:COOKIES的假造,这一点更值得引发程序编写者或站长的注重,不要利用COOKIES来做为用户考证的体例,不然你和把钥匙留给贼是统一个事理.
  
  好比:
  
  Iftrim(Request.cookies("uname"))="fqy"andRequest.cookies("upwd")=”fqy#e3i5.com”then
  ……..more………
  Endif
  
  我想列位站长大概是喜欢写程序的伴侣万万别出这类毛病,真的是不成宽恕.假造COOKIES都几年了,你还用如许的就不克不及怪他人跑你的暗码.触及到用户暗码大概是用户上岸时,你最好利用session它才是最平安的.假如要利用COOKIES就在你的COOKIES上多加一个信息,SessionID,它的随机值是64位的,要猜解它,不成能.例:在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。
作者: 爱飞    时间: 2015-1-19 23:26
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 若天明    时间: 2015-2-4 20:30
不能只是将它停留在纸上谈兵的程度上。
作者: 简单生活    时间: 2015-2-10 07:05
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者: 飘灵儿    时间: 2015-3-1 01:31
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
作者: 不帅    时间: 2015-3-10 11:40
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
作者: 冷月葬花魂    时间: 2015-3-17 06:12
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2