`
hududanyzd
  • 浏览: 780411 次
文章分类
社区版块
存档分类
最新评论

在ASP程序中执行SQL语句的安全性问题

 
阅读更多

在ASP程序中,如果我们的程序设计不当,就有可能面临数据库被别人控制的危险

以下是一个简单的用户更改密码的代码
---------------------
username=request("user_name")
pwd=request("pwd")
username=replace(username,"'","''")
pwd=replace(pwd,"'","''")
sql="update tbl_test set pwd='" & pwd & "' where uid='" & username & "'"
set rs=conn.execute (sql)

--------------
现在,假如我注册一个用户,用户名为 aa'; exec sp_addlogin 'haha

当该用户更改密码时(假设改为pp),会出现什么后果呢??

sql变为 update tbl_test set pwd='pp' where uid='aa' ; exec sp_addlogin 'haha'

结果是用户密码没有被修改,因为没有 aa这个用户,
但在你的数据库中创建了一个登陆,新登陆名为 haha

将用户名稍加修改,实际上可以运行任何sql语句,任何sql系统过程
而这一切都在你不知情的情况下发生的,实际上,上面的只是一个

示范,稍微修改一下用户名,我们可以做添加一个DBA账号,删除所

有纪录,读取用户密码等越权操作。

解决的办法:

在你使用参数前,对参数进行严格检验,尤其是用户输入的参数

不但要对其数据类型,长度进行检查,还要对其内容进行检查。


我们再看一段代码。(用户登陆)

username=request("user_name")
pwd=request("pwd")
username=replace(username,"'","''")
pwd=replace(pwd,"'","''")

sql="select uid,pwd from account where uid='" & username & "' and pwd='" & pwd "'"
rs.open sql,conn,1,1
if not rs.eof then
response.write rs(0) & "欢迎您,您已登陆成功"
else
response.write "登陆失败,错误的用户名或密码"
end if
............
以上程序的漏洞是显而易见的
我们可以以 用户名: admin 密码: a' or '1'='1
轻易以admin的账号登陆系统
因为我们的sql 变为了
select uid,pwd from account where uid='admin' and pwd='a' or '1'='1'
显然 uid='admin' and pwd='a' or '1'='1'是恒为成立的所以 rs.eof 为false

正确的写法应为
sql="select uid,pwd from account where uid='" & username & "' and pwd='" & pwd "'"
rs.open sql,conn,1,1
if rs(0)=username and rs(1)=pwd then
response.write rs(0) & "欢迎您,您已登陆成功"
else
response.write "登陆失败,错误的用户名或密码"
end if

----全文完--------

分享到:
评论

相关推荐

    ASP执行SQL语句安全性分析.pdf

    ASP执行SQL语句安全性分析.pdf

    ASP执行SQL语句安全性分析 (2).pdf

    ASP执行SQL语句安全性分析 (2).pdf

    ASP执行SQL语句安全性分析 (1).pdf

    ASP执行SQL语句安全性分析 (1).pdf

    oracle存储过程

    假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密。 第三、有利于SQL语句的重用。oracle 存储过程的基本语法 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字 ( 参数1 IN NUMBER, ...

    ASP程序与SQL存储过程结合使用详解

    假如将SQL语句混合在ASP代码中,一旦代码失密,同时也就意味着库结构失密。 第三、有利于SQL语句的重用。 在ASP中,一般通过COMMAND对象调用存储进程,根据不同情况,本文也介绍其它调用方法。

    ASP开发技术大全5

    包括HTML标记语言、CSS样式、ASP基础、ASP运行环境配置和管理、ASP程序调试与错误处理、VBScript脚本语言、JavaScript脚本语言、Request对象、Response对象、Application对象、Session对象、Server对象、Object...

    ASP开发技术大全1

    包括HTML标记语言、CSS样式、ASP基础、ASP运行环境配置和管理、ASP程序调试与错误处理、VBScript脚本语言、JavaScript脚本语言、Request对象、Response对象、Application对象、Session对象、Server对象、Object...

    ASP开发技术大全3

    包括HTML标记语言、CSS样式、ASP基础、ASP运行环境配置和管理、ASP程序调试与错误处理、VBScript脚本语言、JavaScript脚本语言、Request对象、Response对象、Application对象、Session对象、Server对象、Object...

    ASP开发技术大全2

    包括HTML标记语言、CSS样式、ASP基础、ASP运行环境配置和管理、ASP程序调试与错误处理、VBScript脚本语言、JavaScript脚本语言、Request对象、Response对象、Application对象、Session对象、Server对象、Object...

    ASP开发技术大全4

    包括HTML标记语言、CSS样式、ASP基础、ASP运行环境配置和管理、ASP程序调试与错误处理、VBScript脚本语言、JavaScript脚本语言、Request对象、Response对象、Application对象、Session对象、Server对象、Object...

    SQL+SERVER+2000+应用与开发范例宝典.part1.rar

    全书分为18章,内容包括管理SQL Server 2000、SQL Server数据库的安全性管理、使用企业器管理数据库、使用SQL语句管理数据库、SQL查询相关技术、SQL查询技术、更新SQL Server 2000、Delphi与SQL Server 2000、ASP与...

    ASP中SQL注入式攻击的防范探析pdf

    具体分析了基于Web技术的开放性的应用软件Asp中SQL语句最易受攻击的注入式攻击的具体表现形式, 通过具体实例说明攻击方式及其原理,并指出了详细的解决方案和防范措施,使Asp + SQL设计的与平台无关的Web应用 程序的...

    SQL+SERVER+2000+应用与开发范例宝典.part2.rar

    全书分为18章,内容包括管理SQL Server 2000、SQL Server数据库的安全性管理、使用企业器管理数据库、使用SQL语句管理数据库、SQL查询相关技术、SQL查询技术、更新SQL Server 2000、Delphi与SQL Server 2000、ASP与...

    ASP+SQL网上选课管理系统.zip

    经过分析,我们使用了基于IIS的 ACCESS+ASP (active server pages) 相结合的动态网页技术, 并运用VB Script脚本语言和非过程化查询语言SQL语句,利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,...

    ASP-ISAPI通用防注入过滤器 v1.0

    与ASP版的通用防注入系统相比具有安全性、稳定性、易用性的优势。而且不需要改变原始的ASP程序。 ASP-ISAPI只需要安装在IIS服务器端便能保护整个网站目录下的所有ASP文件,使您无须再为隐藏在成百上千个ASP文件中的...

    asp学习相关资料大全

    ASP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 (5)ASP能与任何ActiveX scripting语言相容。除了可用VBscript或...

    asp.net知识库

    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...

    ASP.NET 2.0开发技术大全

    包括认识ASP.NET 2.0、ASP.NET 2.0网页语法、字符串与日期处理、Page对象、Response和Request对象、Application和Session对象、Server对象、Cookie对象、Cache对象、Global.asax全局程序集文件、标准服务器控件、...

    仿世纪佳缘婚介交友系统5.3 ASP+SQL

    仿世纪佳缘婚介交友系统5.3 ASP+SQL Nslove5使用手册 一、运行环境: 1、服务器要求:windows2000及更高系统版本,IIS5+以上! 2、组件要求:Jmail邮件组件、aspjpeg水印组件、上传组件(aspupload组件)、FSO...

Global site tag (gtag.js) - Google Analytics