日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。
网络安全成为了现在互联网的焦点,这也恰恰触动了每一位用户的神经,由于设计的漏洞导致了不可收拾的恶果,验证了一句话“出来混的,迟早是要还的”,所以我想通过专题博文介绍一些常用的攻击技术和防范策略。
SQL Injection也许很多人都知道或者使用过,如果没有了解或完全没有听过也没有关系,因为接下来我们将介绍SQL Injection。
SQL Injection
就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
首先让我们了解什么时候可能发生SQL Injection。
假设我们在浏览器中输入URL www.sample.com,由于它只是对页面的简单请求无需对数据库动进行动态请求,所以它不存在SQL Injection,当我们输入www.sample.com?testid=23时,我们在URL中传递变量testid,并且提供值为23,由于它是对数据库进行动态查询的请求(其中?testid=23表示数据库查询变量),所以我们可以该URL中嵌入恶意SQL语句。
现在我们知道SQL Injection适用场合,接下来我们将通过具体的例子来说明SQL Injection的应用,这里我们以pubs数据库作为例子。
我们通过Web页面查询job表中的招聘信息,job表的设计如下:
接着让我们实现Web程序,它根据工作Id(job_id)来查询相应的招聘信息,示意代码如下:
/// summary>
/// Handles the Load event of the Page control.
/// summary>
/// param name="sender">The source of the event.param>
/// param name="e">The see cref="System.EventArgs"/> instance containing the event data.param>
protected void Page_Load(object sender, EventArgs e)
if (!IsPostBack)
// Gets departmentId from http request.
string queryString = Request.QueryString["departmentID"];
if (!string.IsNullOrEmpty(queryString))
// Gets data from database.
gdvData.DataSource = GetData(queryString.Trim());
// Binds data to gridview.
gdvData.DataBind();现在我们已经完成了Web程序,接下来让我们查询相应招聘信息吧。
(责任编辑:)
相关阅读: 网
- MySQL CMake source code can't find Curses 2015.08.19
- 网络安全:互联网安全 如何防范木马及病毒的攻击 2015.08.17
- 加强网站服务器安全维护的技巧 2015.08.17
- 电脑离线就安全?这个软件一样能远程窃取数据 2015.08.12
- 如何在Linux上最妥善地管理加密密钥? 2015.08.11