易截截图软件、单文件、免安装、纯绿色、仅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


相关文档:

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

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的 INNER JOIN, left join,right join语法

inner join(等值连接) 只返回两个表中联结字段相等的行
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
INNER JOIN 语法:
INNER JOIN 连接两个数据表的用法:
SELECT * from 表1 INNER JOIN 表2 ON 表1.字段号=表2 ......

SQl自动备份删除

BackupEveryDay
每天进行数据库的差异备份
day
Declare @File Varchar(2000)
Set @File='E:\Databasebackup\njyc_data_diff.BAK'
Backup database njyc_data to Disk=@File with DIFFERENTIAL
WeekBackup
每周进行一次数据库的完全备份,备份文件名为当天日期 (njyc_data_年_月_日)
BackupAll
DECLARE @BackupFi ......

使用公用表表达式(CTE)简化嵌套SQL 和进行递归调用

1.使用CTE简化嵌套sql
   先看下面一个嵌套的查询语句:
select * from person.StateProvince where CountryRegionCode in 
         (select CountryRegionCode from person.CountryRegion where  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号