网站漏洞检测归类和解决方案

网站漏洞检测归类和解决方案

ID:14717048

大小:49.00 KB

页数:15页

时间:2018-07-30

网站漏洞检测归类和解决方案_第1页
网站漏洞检测归类和解决方案_第2页
网站漏洞检测归类和解决方案_第3页
网站漏洞检测归类和解决方案_第4页
网站漏洞检测归类和解决方案_第5页
资源描述:

《网站漏洞检测归类和解决方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、网站漏洞检测归类和解决方案doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。一、典型网站漏洞分类根据风险等级,网站漏洞通常可分为高风险、中风险和低风险三种。其中高风险漏洞是必须封堵的。中、低风险漏洞中有一部分是必须封堵的。还有一部分中、低风险漏洞,由于其封堵的代价可能远高于不封堵所造成的损失,因而可以进行选择性封堵。可以采取工具亿思平台进行其网站的漏洞扫描,具体地址为:http://www.iiscan.com典型网站漏洞的分类及相应的封堵要求如下表所示:风险等级高风险1、SQL注入漏洞2、跨站漏洞中、低风险1、默认

2、测试用例文件2、管理后台登陆入口中、低风险1、存在电子邮件地址漏洞名称3、XPATH注入漏3、应用程序错误引起的2、无效链接洞信息泄露4、备份文件造成的源代码泄漏3、Web应用默认目录封堵要求必须封堵选择封堵1二、典型网站漏洞影响及解决方案1、SQL注入漏洞漏洞影响:本漏洞属于Web应用安全中的常见漏洞,属于OWASPTOP10(2007)中的注入类漏洞。很多WEB应用中都存在SQL注入漏洞。SQL注入是一种攻击者利用代码缺陷进行攻击的方式,可在任何能够影响数据库查询的应用程序参数中利用。例如url本身的参数、post数据或cookie值。正常的SQ

3、L注入攻击很大程度上取决于攻击者使用从错误消息所获得信息。但是,即使没有显示错误消息应用程序仍可能受SQL注入的影响。总体上讲,SQL注入是对web应用而不是对web服务器或操作系统本身的攻击。正如其名称所示,SQL注入是对查询添加非预期SQL命令从而以数据库管理员或开发人员非预期的方式操控数据库的行为。如果成功的话,就可以获得、修改、注入或删除有漏洞web应用所使用数据库服务器的数据。在某些环境下,可利用SQL注入完全控制系统。解决方案:防护建议包括部署分层安全措施(包括在接受用户输入时使用参数化的查询)、确保应用程序仅使用预期的数据、加固数据库服

4、务器防止不恰当的访问数据。建议使用以下措施防范SQL注入漏洞:2对于开发========使用以下建议编写不受SQL注入攻击影响的web应用。参数化查询:SQL注入源于攻击者控制查询数据以修改查询逻辑,因此防范SQL注入攻击的最佳方式就是将查询的逻辑与其数据分隔,这可以防止执行从用户输入所注入的命令。这种方式的缺陷是可能对性能产生影响(但影响很小),且必须以这种方式构建站点上的每个查询才能完全有效。只要无意中绕过了一个查询,就足以导致应用受SQL注入的影响。以下代码显示的是可以进行SQL注入的SQL语句示例。sSql="SELECTLocationNa

5、meFROMLocations";sSql=sSql+"WHERELocationID="+Request["LocationID"];oCmd.CommandText=sSql;下面的例子使用了参数化的查询,不受SQL注入攻击的影响。sSql="SELECT*FROMLocations";sSql=sSql+"WHERELocationID=@LocationID";oCmd.CommandText=sSql;oCmd.Parameters.Add("@LocationID",Request["LocationID"]);应用程序没有包含用户输入向

6、服务器发送SQL语句,而是使用-@LocationID-参数替代该输入,这样用户输入就无法成为SQL执行的命令。3这种方式可以有效的拒绝攻击者所注入的任何输入,尽管仍会生成错误,但仅为数据类型转换错误,而不是黑客可以利用的错误。以下代码示例显示从HTTP查询字符串中获得产品ID并使用到SQL查询中。请注意传送给SqlCommand的包含有SELECT的字符串仅仅是个静态字符串,不是从输入中截取的。此外还请注意使用SqlParameter对象传送输入参数的方式,该对象的名称(@pid)匹配SQL查询中所使用的名称。C#示例:stringconnStri

7、ng=WebConfigurationManager.ConnectionStrings["myConn"].ConnectionString;using(SqlConnectionconn=newSqlConnection(connString)){conn.Open();SqlCommandcmd=newSqlCommand("SELECTCount(*)FROMProductsWHEREProdID=@pid",conn);SqlParameterprm=newSqlParameter("@pid",SqlDbType.VarChar,50);

8、prm.Value=Request.QueryString["pid"];cmd.Parameters.Ad

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。