易截截图软件、单文件、免安装、纯绿色、仅160KB

Web安全开发:SQL注入攻击和网页挂马

申明。文章仅代表个人观点,与所在公司无任何联系。
1.     概述
网页挂马这个话题想来大家并不陌生。为什么有这么多的网页上存在着木马去攻击普通用户?不可否认,相当一部分网页原本就是恶意的:网页的作者故意在上面放上木马,然后通过各种手段引诱用户去浏览。但是绝大多数被挂马的网页原本是正常的网页,例如普通的教育网站,购物网站等等,只是网页被攻击者恶意修改后插入了木马代码。
那么,攻击者是如何能够恶意修改一个正常网页的呢? 换句话说,一个网站是如何被“黑”的?一个最常见的攻击方法是SQL注入(SQL Injection)攻击。事实上,就在今年的五月份,爆发了一次大规模的网页攻击活动【1】。据估计,约有12万个网页被恶意修改插入木马代码,而攻击者采用的手段就是SQL注入攻击。
那么,什么是SQL注入攻击?攻击者是如何利用SQL注入攻击篡改网页的?Web开发人员又应该如何防范SQL攻击?这就是我们这篇文章要阐述的问题。
2.     SQL注入攻击
我们从一个简单的例子【2】开始。下面这段代码用来构造SQL查询命令。
var strUserAccount;
strUserAccount = Request.form ("UserAccount");
var sqlQueryString = "select * from Orders where UserAccount = '" +                                   strUserAccount + "'";
//执行SQL Query …
这段代码很简单:给出UserAccount,查询其对应的订单信息。
例如,如果输入UserAccount值为100,那么构造的查询命令就是:
SELECT * from Orders WHERE UserAccount = '100'
从功能上说这段代码非常正确,完全没有任何问题。但是开发人员往往忽视安全方面的考虑:如果用户(攻击者)提供的输入数据是恶意的, 程序的表现行为是什么?
·         如果是一个不那么友好的攻击者,可能输入UserAccount值为100' or 1=1 --,构造的查询命令就是:
SELECT * from Orders WHERE UserAccount = '100' or 1=1 --
执行这个查询命令,就会返回所有用户的订单,导致商业机密信息的泄漏。
·         如果是一个非常不友好的攻击者,可能输入UserAccou


相关文档:

ASP.Net + SQL Server 存储过程实现分页排序

问题提出:
在应用程序中经常需要查询数据。当查询结果数据量比较大的时候,检索结果、界面显示都需要花费大量的时间。为了避免这个问题,应该每次只检索部分数据,也就是使用常见的分页方式来处理。分页的问题在asp.net中好像非常简单,只要在GridView中启用分页就可以了。启用分页后,GridView关联数据源控件,依旧会加载 ......

SQL Server 2005 (MSSQLSERVER) 服务不能启动

SQL Server 2005 (MSSQLSERVER) 服务不能启动
原因:VIA协议”给启用了,停用“VIA协议”问题解决。
"VIA协议"停用方法:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager ->打开后找到"SQL Server 2005 网络配置"->MSSQLSERVER 属性的协议 &nb ......

SQL自动删除备份文件

DECLARE  @sql varchar(8000)  
--下面是删除15天前备份文件的处理  
set @sql='Del E:\Databasebackup\'  
@sql=@sql +rtrim(convert(varchar,getdate()-15,112))+'.bak'
Exec  master..xp_cmdshell   @sql  
DECLARE @DelFile Varchar(256)
set ......

读取SQL Server 表结构

引用邹建的:   
Cod
  SELECT    
  表名=case   when   a.colorder=1   then   d.name   else   ''   end,    
  字段序号=a.colorder,     ......

Linq查询 DataSet 能否和SQL 级联?

        最近做项目的时候,遇到了一个问题。我主要是做一个Web Services给别人用的。别人传一个用户ID号过来,然后我将这个用户的所有好友的下载记录包装成一个DataSet返回去。 而根据用户ID号获取该用户的所有好友信息,则是通过另一个Web Services得到的,这里为FriendDS。
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号