【asp源码栏目提醒】:网学会员鉴于大家对asp源码十分关注,论文会员在此为大家搜集整理了“网站建设之安全策略 - 技术总结”一文,供大家参考学习
网站建设之安全策略 今天有个网站被人挂了木马幸好到网上查了查才找到应对方法不然又搞到半死。
下面是一些
网络安全的防范分享给大家。
第一免费程序不要真的就
免费用既然你可以共享原码那么攻击者一样可以分析代码。
如果在细节上注意防范那样你站点的安全性就大大的提高了。
即使出现了SQL Injection这样的漏洞攻击者也不可能马上拿下你的站点。
由于
ASP的方便易用越来越多的网站后台程序都使用
ASP脚本语言。
但是由于
ASP本身存在一些安全漏洞稍不小心就会给黑客提供可乘之机。
事实上安全不仅是网管的事编程人员也必须在某些安全细节上注意养成良好的安全习惯否则会给自己的网站带来巨大的安全隐患。
目前大多数网站上的
ASP程序有这样那样的安全漏洞但如果编写程序的时候注意一点的话还是可以避免的。
1、用户名与口令被破解 攻击原理用户名与口令往往是黑客们最感兴趣的东西如果被通过某种方式看到源代码后果是严重的。
防范技巧涉及用户名与口令的程序最好封装在服务器端尽量少在
ASP文件里出现涉及与数据库连接的用户名与口令应给予最小的权限。
出现次数多的用户名与口令可以写在一个位置比较隐蔽的包含文件中。
如果涉及与数据库连接在理想状态下只给它以执行存储过程的权限千万不要直接给予该用户修改、插入、删除记录的权限。
2、验证被绕过 攻击原理现在需要经过验证的
ASP程序大多是在页面头部加一个判断语句但这还不够有可能被黑客绕过验证直接进入。
防范技巧需要经过验证的
ASP页面可跟踪上一个页面的文件名只有从上一页面转进来的会话才能读取这个页面。
3、inc文件泄露
问题 攻击原理当存在
ASP的主页正在制作且没有进行最后调试完成以前可以被某些搜索引擎机动追加为
搜索对象。
如果这时候有人利用搜索引擎对这些网页进行查找会得到有关文件的定位并能在浏览器中查看到数据库地点和结构的细节并以此揭示完整的
源代码。
防范技巧程序员应该在网页发布前对它进行彻底的调试安全专家则需要加固
ASP文件以便外部的用户不能看到它们。
首先对.inc文件内容进行加密其次也可以使用.
asp文件代替.inc文件使用户无法从浏览器直接观看文件的源代码。
inc文件的文件名不要使用
系统默认的或者有特殊含义容易被用户猜测到的名称尽量使用无规则的英文字母。
4、自动备份被下载 攻击原理在有些编辑
ASP程序的工具中当创建或者修改一个
ASP文件时编辑器自动创建一个备份文件比如UltraEdit就会备份一个.bak文件如你创建或者修改了so.
asp编辑器会自动生成一个叫so.
asp.bak文件如果你没有删除这个bak文件攻击者可以直接下载so.
asp.bak文件这样so.
asp的源程序就会被下载。
防范技巧上传
程序之前要仔细检查删除不必要的
文档。
对以BAK为后缀的文件要特别小心。
5、特殊字符 攻击原理输入框是黑客利用的一个目标他们可以通过输入脚本语言等对用户客户端造成损坏如果该输入框涉及数据查询他们会利用特殊
查询语句得到更多的数据库数据甚至表的全部。
因此必须对输入框进行过滤。
但如果为了提高效率仅在客户端进行输入合法性检查仍有可能被绕过。
防范技巧在处理类似留言板、BBS等输入框的
ASP程序中最好屏蔽掉
HTML、javaScript、
VBScript语句如无特殊要求可以限定只允许输入字母与数字屏蔽掉特殊字符。
同时对输入字符的长度进行限制。
而且不但要在客户端进行输入合法性检查同时要在服务器端程序中进行类似检查。
6、数据库下载漏洞 攻击原理在用Access做后台数据库时如果有人通过各种方法知道或者猜到了服务器的Access数据库的路径和数据库名称那么他也能够下载这个Access数据库文件这是非常危险的。
防范技巧 1为你的数据库文件名称起个复杂的非常规的名字并把它放在几层目录下。
2不要把数据库名写在程序中。
有些人喜欢把DSN写在程序中比如 DBPathServer.MapPathabc.mdbconn.OpendriverMicrosoft Access Driver.mdbdbqDBPath 假如万一给人拿到了源程序你的Access数据库的名字就一览无余了。
因此建议你在ODBC里设置数据源再在程序中这样写 conn.openwangluogongsi 3使用Access来为数据库文件编码及加密。
首先在工具→安全→加密/解密数据库中选取数据库如wangzhanjianshe.mdb然后按确定接着会出现数据库加密后另存为的窗口可存为wangzhanjianshe1.mdb。
要注意的是以上的动作并不是对数据库设置密码而只是对数据库文件加以编码目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密首先打开经过编码了的wangzhanjianshe1.mdb在打开时选择独占方式。
然后选取功能表的工具→安全→设置数据库密码接着输入密码即可。
这样即使他人得到了wangzhanjianshe1.mdb文件没有密码他也是无法看到wangzhanjianshe1.mdb中的内容。
7、防范远程注入攻击 这类攻击在以前应该是比较常见的攻击方式比如POST攻击攻击者可以随便的改变要提交的数据值已达到攻击目的.又如COOKIES的伪造这一点更值得引起程序编写者或站长的注意不要使用COOKIES来做为用户验证的方式否则你和把钥匙留给贼是同一个道理. 比如 If trimRequest.cookiesunamefqyand Request.cookiesupwdmytoengma.comthen….more…End if 我想各位站长或者是喜好写程序的朋友千万别出这类错误真的是不可饶恕.伪造COOKIES都多少年了你还用这样的就不能怪别人跑你的密码.涉及到用户密码或者是用户
登陆时你最好使用session它才是最安全的.如果要使用COOKIES就在你的COOKIES上多加一个信息SessionID它的随机值是64位的要猜解它不可能.例 if notrs.BOF or rs.eofthen logintrueSessionusernamesessionIDUsername SessionpasswordsessionIDPasswordResponse.cookiesusernameUsernameResponse.cookiesPass
wordPassword 下面我们来谈谈如何防范远程注入攻击一般的攻击都是将单表提交文件拖到本地将Form ACTIONchk.
asp指向你服务器中处理数据的文件即可.如果你全部的数据过滤都在单表页上那么恭喜你你将已经被脚本攻击了. 怎么才能制止这样的远程攻击请看代码如下程序体9