web脚本程序攻击的防范
作者:lanker 来源:cnwill.com 发布时间:2007-10-18 13:29:00
如今WEB的安全问题影响着整个安全界,SQL注入,跨站脚本攻击等攻击受到了关注。
网络安全问题日益变的更加重要,国内依然有很多主机受到此类安全的威胁,所以我们今天讲讲如何通过安全的编写WEB程序把损失降的更小。
综观WEB主机所到的安全威胁,大多都是WEB脚本程序造成,下面就谈下如何防范受到攻击。
1,现在很多站点为了减少开发的时间,很多站点都部分或全部采用了第三方程序,这无疑是个节省时间的好办法,但也为站点的安全性增加了风险。
如果你使用了第三方公开的程序那你就要注意了,因为这类程序的源码是公开的在网上随便都可以找到,很容易被黑客下载下来去研究其中的漏洞,这样你受攻击的可能性就增加了。举个简单的例子吧,就单说国内的名气不错的动网吧,风格和实用性什么的都不错,在国内也有很多站点的论坛都采用的是动网,但动网的重大漏洞也不少,就单说上些日子比较严重的UPFILE的漏洞吧,直接上传ASP木马可怕吧!这样每当动网出现一次大的漏洞就涉及到用动网程序的站点也出现了漏洞,这两天我没事就在网上闲逛,发现很多站点的论坛用的还是动网的6.0的版本呢,人家官方的都是DVBBS7.0+SP2的了。漏洞就不用说了,肯定是存在N多了。
解决办法:尽量少用或不用第三方程序,或应对第三方的程序进行评估后采用,另管理员不要偷懒要经常去官方站点下载更新补丁。
2. 如果你采用的是自己开发的程序,那就要注意在程序输入的地方要有严格的过滤,这也是最容易受到攻击的地方,比如SQL的注入,跨站脚本攻击基本都是利用过滤不严格,来构造畸形语句进行的。这就是所谓的输入验证攻击,你应该明白的是每一个GET和POST请求都可以用来进行输入验证攻击。然而最容易受到攻击的地方就是输入字段。通常情况下这些字段是登陆名,口令,地址,电话号码,个人主页等以及搜索的地方。还有个比较容易忽略的地方就上COOKIE的过滤,让我们来看看BBSXP+SP1的源码
下面是upface.asp 的部分代码:
...........
<%
top
if Request.Cookies("username")=empty then error("<li>您还未<a href=login.asp>登录</a>社区")
if Request("menu")="up" then
id=Conn.Execute("Select id From [user] where username=’"&Request.Cookies("username")&"’")(0)
...........
可以很清楚的看到 对 Request.Cookies("username") 这个变量根本未做任何的过滤,象这样的未过滤的地方在BBSXP里还有很多。这可以让我们来提交构造的包进行注入攻击。
猜你喜欢
- 代码如下:use tempdb if object_id('tempdb..#table') is not null dro
- Chrome的CSS支持程度 :Green / √ means current support.Orange / Δ means that
- 一。存储过程的创建和使用1.创建程序包,并在程序中创建存储过程create or replace PACKAG
- 我们工作中经常需要将数据转化成柱状图,饼图等,以方便直观的分析数据, 这里给大家介绍一个ASP中制作饼图、柱状图的组件:csDra
- 代码如下:'============================== '格式化HTML,SDCMS加强版 '==
- 在一些网页应用中,就比如在投票系统中,当我们进行的是多项投票时,我们要求用户最多只能选择几项进行投票,这也是就是说选择复选框的个数最多几个.
- 通配符:通配符描述示例%包含零个或更多字符的任意字符串。WHERE title LIKE '%computer%' 将查找处
- 随着网页技术的发展,网络视觉设计与之前以程序员为主导的审美特征相比,具有了极大的改观。同时,随着美术、音乐、舞蹈人才的加入,网络开始在这一社
- MySQL 拥有一个复杂的但直观易学的 SQL 接口。这个章节描述了各种不同的命令、类型和函数,为了高效地使用 MySQL 需要了解它们。这
- 你用过css么?当然,我是指你喜欢做网页的话,用过?很好,那你用过它的特效么?没有?那请跟我来。让我先
- 例子:Response.Cookies("letwego")("visiter")="84
- Gmail 作为一个经典的 Web 2.0 应用,在带来革命性的邮件管理体验的同时,以其完整、快速的 AJAX 操作方式,深受用户的推崇和技
- 二级域名的解析指向ASP源代码,懂程序的人一看就明白怎么实现了。呵呵!真简单<%@ LANGUAGE =&nb
- 给静态网页加密的方法有很多,有的简单有的复杂。前两天看见有人问静态网页加密问题,就写了这个代码思路:加密时:先把用户的密钥A用md5加密为B
- 忽然想起一个CSS的特性,写一段代码玩玩:<style type="text/css">body {font
- 索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。在数据库表中,对字段建立
- 在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在
- 在一群里有朋友发问,有时间,也就看看了,不多说了,看图了:用一般的 select .... order 排序出来,就如下图了,是
- 随滚动条移动的DIV层js代码,无论你的滚动条到哪里这个DIV层就跟到哪里!代码中例举了五个方向的滚动div层例子:包括左上方的div,左下
- 我认为在ASP中最好的办法是用编程实现定时刷新Cache,也就是说给Application中储存的设一个过期时间。当然,在ASP中Appli