关于SQL指令植入式攻击的危害与防范措施

文章关键字:|SQL|攻击|防范|措施|植入式|Web|IIS|服务器|安全|HTML|ASP|ID|

  什么是SQL 指令植入式攻击?

  在设计或者维护Web网站时,你也许担心它们会受到某些卑鄙用户的恶意攻击。的确,如今的Web网站开发者们针对其站点所在操作系统平台或Web 服务器的安全性而展开的讨论实在太多了。不错,IIS 服务器的安全漏洞可能招致恶意攻击;但你的安全检查清单不应该仅仅有 IIS 安全性这一条。有些代码,它们通常是专门为数据驱动(data-driven) 的 Web 网站而设计的,实际上往往同其它IIS漏洞一样存在严重的安全隐患。这些潜伏于代码中的安全隐患就有可能被称为“SQL指令植入式攻击” (SQL injection) 的手段所利用而导致服务器受到攻击。

  SQL指令植入式攻击技术使得攻击者能够利用Web应用程序中某些疏于防范的输入机会动态生成特殊的 SQL指令语句。举一个常见的例子:

  某Web网站采用表单来收集访问者的用户名和密码以确认他有足够权限访问某些保密信息,然后该表单被发送到 Web 服务器进行处理。接下来,服务器端的ASP 脚本根据表单提供的信息生成 SQL 指令语句提交到SQL服务器,并通过分析SQL服务器的返回结果来判断该用户名/密码组合是否有效。

  为了实现这样的功能,Web 程序员可能会设计两个页面:一个 HTML 页面 (Login.htm) 用于登录,另一个ASP 页面(ExecLogin.asp) 用于验证用户权限(即向数据库查询用户名/密码组合是否存在)。具体代码可能象这样:

  Login.htm (HTML 页面)

  代码:<form action="ExecLogin.asp" method="post">
  Username: <input type="text" name="txtUsername"><br>
  Password: <input type="password" name="txtPassword"><br>
  <input type="submit"></form>

  ExecLogin.asp (ASP 页面)
  代码:<% Dim p_strUsername, p_strPassword, objRS, strSQL p_strUsername = Request.Form("txtUsername")
  p_strPassword = Request.Form("txtPassword")

  strSQL = "SELECT * FROM tblUsers " & _ "WHERE Username=" & p_strUsername & _ " and Password=" &

  p_strPassword & "" Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL,

  "DSN=..." If (objRS.EOF) Then Response.Write "Invalid login." Else Response.Write "You are logged in as "

  & objRS("Username") End If Set objRS = Nothing %>



未完,原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9185

你可能感兴趣的:(sql,Web,SQL Server,asp,IIS)